[PATCH] lib: -Wformat-truncation in rsa_engine_get_priv_key

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Fri Jul 30 17:05:07 CEST 2021


With glibc 2.33 (Ubuntu package glibc6 2.33-0ubuntu9) building
sifive_unmatched_defconfig results in:

In file included from /usr/include/stdio.h:866,
                  from ././include/compiler.h:26,
                  from <command-line>:
In function ‘snprintf’,
     inlined from ‘rsa_engine_get_priv_key’ at ./tools/../^:273:4:
/usr/include/riscv64-linux-gnu/bits/stdio2.h:71:10: warning:
‘%s’ directive argument is null [-Wformat-truncation=]
    71 |   return __builtin___snprintf_chk (__s, __n, 
__USE_FORTIFY_LEVEL - 1,
       | 
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    72 |        __glibc_objsize (__s), __fmt,
       |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    73 |        __va_arg_pack ());
       |        ~~~~~~~~~~~~~~~~~

Avoid passing a NULL string.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
---
  lib/rsa/rsa-sign.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/rsa/rsa-sign.c b/lib/rsa/rsa-sign.c
index 085dc89bf7..c7ae7a0dbc 100644
--- a/lib/rsa/rsa-sign.c
+++ b/lib/rsa/rsa-sign.c
@@ -271,8 +271,7 @@ static int rsa_engine_get_priv_key(const char 
*keydir, const char *name,
  				 keydir, name);
  		else if (keydir)
  			snprintf(key_id, sizeof(key_id),
-				 "%s",
-				 name);
+				 "%s", name ? name : "");
  		else if (keyfile)
  			snprintf(key_id, sizeof(key_id), "%s", keyfile);
  		else
-- 
2.31.1



More information about the U-Boot mailing list