Просмотр исходного кода

staging: speakup: i18n.c: Fix leak in msg_set()

If we end up returning -EINVAL from the function we will leak the
memory allocated to 'newstr' which has been allocated but not yet
assigned to anything.
Fix the leak by properly freeing the memory again before we return.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Jesper Juhl 13 лет назад
Родитель
Сommit
fafbc202cd
1 измененных файлов с 1 добавлено и 0 удалено
  1. 1 0
      drivers/staging/speakup/i18n.c

+ 1 - 0
drivers/staging/speakup/i18n.c

@@ -555,6 +555,7 @@ ssize_t msg_set(enum msg_index_t index, char *text, size_t length)
 			&& index <= MSG_FORMATTED_END)
 			&& index <= MSG_FORMATTED_END)
 				&& !fmt_validate(speakup_default_msgs[index],
 				&& !fmt_validate(speakup_default_msgs[index],
 				newstr)) {
 				newstr)) {
+				kfree(newstr);
 				return -EINVAL;
 				return -EINVAL;
 			}
 			}
 			spk_lock(flags);
 			spk_lock(flags);