Skip to content

Commit 6520011

Browse files
wenwenwang1gregkh
authored andcommitted
sound: fix a memory leak bug
commit c7cd7c7 upstream. In sound_insert_unit(), the controlling structure 's' is allocated through kmalloc(). Then it is added to the sound driver list by invoking __sound_insert_unit(). Later on, if __register_chrdev() fails, 's' is removed from the list through __sound_remove_unit(). If 'index' is not less than 0, -EBUSY is returned to indicate the error. However, 's' is not deallocated on this execution path, leading to a memory leak bug. To fix the above issue, free 's' before -EBUSY is returned. Signed-off-by: Wenwen Wang <[email protected]> Cc: <[email protected]> Signed-off-by: Takashi Iwai <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent b5454da commit 6520011

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

sound/sound_core.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,8 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati
287287
goto retry;
288288
}
289289
spin_unlock(&sound_loader_lock);
290-
return -EBUSY;
290+
r = -EBUSY;
291+
goto fail;
291292
}
292293
}
293294

0 commit comments

Comments
 (0)