From daf02f75b1719cec345cad68c6e01e529c9da676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Mon, 6 Jun 2022 11:50:46 +0000 Subject: [PATCH] dasdview: fix string truncation warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace strncpy() with util_strlcpy() which provides the required semantic. In function ‘dasdview_print_format1’, inlined from ‘dasdview_view_standard’ at dasdview.c:1952:4, inlined from ‘dasdview_view’ at dasdview.c:2165:3, inlined from ‘main’ at dasdview.c:2364:3: dasdview.c:1791:25: warning: ‘strncpy’ output may be truncated copying 16 bytes from a string of length 1023 [-Wstringop-truncation] 1791 | strncpy(asc, (char *)dumpstr + i, 16); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dasdview.c:1792:25: warning: ‘strncpy’ output may be truncated copying 16 bytes from a string of length 1023 [-Wstringop-truncation] 1792 | strncpy(ebc, (char *)dumpstr + i, 16); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In function ‘dasdview_print_format2’, inlined from ‘dasdview_view_standard’ at dasdview.c:1935:4, inlined from ‘dasdview_view’ at dasdview.c:2165:3, inlined from ‘main’ at dasdview.c:2364:3: dasdview.c:1825:25: warning: ‘strncpy’ output may be truncated copying 8 bytes from a string of length 1023 [-Wstringop-truncation] 1825 | strncpy(asc, (char *)dumpstr + i, 8); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dasdview.c:1826:25: warning: ‘strncpy’ output may be truncated copying 8 bytes from a string of length 1023 [-Wstringop-truncation] 1826 | strncpy(ebc, (char *)dumpstr + i, 8); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GitHub-ID: https://github.com/ibm-s390-linux/s390-tools/pull/137 Signed-off-by: Dan Horák [hoeppner@linux.ibm.com: sort include] Signed-off-by: Jan Höppner --- dasdview/dasdview.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/dasdview/dasdview.c b/dasdview/dasdview.c index ad8b022d..d4b68530 100644 --- a/dasdview/dasdview.c +++ b/dasdview/dasdview.c @@ -29,6 +29,7 @@ #include "lib/dasd_sys.h" #include "lib/libzds.h" #include "lib/util_base.h" +#include "lib/util_libc.h" #include "lib/util_opt.h" #include "lib/util_prg.h" #include "lib/util_sys.h" @@ -1788,10 +1789,8 @@ dasdview_print_format1(unsigned int size, unsigned char *dumpstr) for (i = 0; i < size; i++) { if ((i / 16) * 16 == i) { printf("\n| "); - strncpy(asc, (char *)dumpstr + i, 16); - strncpy(ebc, (char *)dumpstr + i, 16); - asc[16] = '\0'; - ebc[16] = '\0'; + util_strlcpy(asc, (char *)dumpstr + i, 16); + util_strlcpy(ebc, (char *)dumpstr + i, 16); } printf("%02X", dumpstr[i]); if (((i + 1) / 4) * 4 == i + 1) @@ -1822,8 +1821,8 @@ dasdview_print_format2(unsigned int size, unsigned char *dumpstr, begin + (unsigned long long)i, begin + (unsigned long long)i); - strncpy(asc, (char *)dumpstr + i, 8); - strncpy(ebc, (char *)dumpstr + i, 8); + util_strlcpy(asc, (char *)dumpstr + i, 8); + util_strlcpy(ebc, (char *)dumpstr + i, 8); } printf("%02X", dumpstr[i]); if (((i + 1) / 4) * 4 == i + 1)