Skip to content

Commit c7cd7c7

Browse files
wenwenwang1tiwai
authored andcommitted
sound: fix a memory leak bug
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]>
1 parent c02f77d commit c7cd7c7

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
@@ -275,7 +275,8 @@ static int sound_insert_unit(struct sound_unit **list, const struct file_operati
275275
goto retry;
276276
}
277277
spin_unlock(&sound_loader_lock);
278-
return -EBUSY;
278+
r = -EBUSY;
279+
goto fail;
279280
}
280281
}
281282

0 commit comments

Comments
 (0)