speakup: i18n: Switch to kmemdup_nul() in spk_msg_set()
authorYang Yingliang <yangyingliang@huawei.com>
Tue, 6 Apr 2021 03:44:34 +0000 (11:44 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 10 Apr 2021 08:58:50 +0000 (10:58 +0200)
Use kmemdup_nul() helper instead of open-coding to
simplify the code in spk_msg_set().

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Link: https://lore.kernel.org/r/20210406034434.442251-1-yangyingliang@huawei.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/accessibility/speakup/i18n.c

index ee240d3..46bd50f 100644 (file)
@@ -548,12 +548,10 @@ ssize_t spk_msg_set(enum msg_index_t index, char *text, size_t length)
        if ((index < MSG_FIRST_INDEX) || (index >= MSG_LAST_INDEX))
                return -EINVAL;
 
-       newstr = kmalloc(length + 1, GFP_KERNEL);
+       newstr = kmemdup_nul(text, length, GFP_KERNEL);
        if (!newstr)
                return -ENOMEM;
 
-       memcpy(newstr, text, length);
-       newstr[length] = '\0';
        if (index >= MSG_FORMATTED_START &&
            index <= MSG_FORMATTED_END &&
            !fmt_validate(speakup_default_msgs[index], newstr)) {