Sfoglia il codice sorgente

ALSA: hda - Add max allocation check in array allocator

Added a check for max allocation size in snd_array_new() for a
debugging purpose.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 16 anni fa
parent
commit
b910d9ae5b
1 ha cambiato i file con 4 aggiunte e 1 eliminazioni
  1. 4 1
      sound/pci/hda/hda_codec.c

+ 4 - 1
sound/pci/hda/hda_codec.c

@@ -3399,7 +3399,10 @@ void *snd_array_new(struct snd_array *array)
 {
 	if (array->used >= array->alloced) {
 		int num = array->alloced + array->alloc_align;
-		void *nlist = kcalloc(num + 1, array->elem_size, GFP_KERNEL);
+		void *nlist;
+		if (snd_BUG_ON(num >= 4096))
+			return NULL;
+		nlist = kcalloc(num + 1, array->elem_size, GFP_KERNEL);
 		if (!nlist)
 			return NULL;
 		if (array->list) {