Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33baefe5 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

ALSA: hda: Fix krealloc() with __GFP_ZERO usage



krealloc() doesn't work always properly with __GFP_ZERO flag as
expected.  For clearing the reallocated area, we need to clear
explicitly instead.

Reported-by: default avatarJoe Perches <joe@perches.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent fd48331f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -21,13 +21,15 @@ void *snd_array_new(struct snd_array *array)
		return NULL;
	if (array->used >= array->alloced) {
		int num = array->alloced + array->alloc_align;
		int oldsize = array->alloced * array->elem_size;
		int size = (num + 1) * array->elem_size;
		void *nlist;
		if (snd_BUG_ON(num >= 4096))
			return NULL;
		nlist = krealloc(array->list, size, GFP_KERNEL | __GFP_ZERO);
		nlist = krealloc(array->list, size, GFP_KERNEL);
		if (!nlist)
			return NULL;
		memset(nlist + oldsize, 0, size - oldsize);
		array->list = nlist;
		array->alloced = num;
	}