crypto: qat - refactor deprecated strncpy
authorJustin Stitt <justinstitt@google.com>
Wed, 13 Sep 2023 00:51:05 +0000 (00:51 +0000)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 20 Sep 2023 05:15:29 +0000 (13:15 +0800)
`strncpy` is deprecated for use on NUL-terminated destination strings [1].

We should prefer more robust and less ambiguous string interfaces.

`buf` is expected to be NUL-terminated for its eventual use in
`kstrtoul()` and NUL-padding is not required.

Due to the above, a suitable replacement is `strscpy` [2] due to the
fact that it guarantees NUL-termination on the destination buffer.

Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html
Link: https://github.com/KSPP/linux/issues/90
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Justin Stitt <justinstitt@google.com>
Acked-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/qat/qat_common/qat_uclo.c

index 4bd150d1441a02aecb9b4d81e97327fd3af8f538..e27ea7e28c51b07b586f37480dbea4b016c7f65a 100644 (file)
@@ -200,7 +200,7 @@ static int qat_uclo_parse_num(char *str, unsigned int *num)
        unsigned long ae = 0;
        int i;
 
-       strncpy(buf, str, 15);
+       strscpy(buf, str, sizeof(buf));
        for (i = 0; i < 16; i++) {
                if (!isdigit(buf[i])) {
                        buf[i] = '\0';