From 542380a13f178d97851751b57054a6b5be555d1c Mon Sep 17 00:00:00 2001
From: Jens Rehsack <sno@netbsd.org>
Date: Thu, 13 Aug 2020 16:16:44 +0200
Subject: [PATCH 2/2] test/test_x509.c: fix potential overflow issue

Instead of doing a memcpy() which does static overflow checking, use
snprintf() for string copying which does the check dynamically.

Fixes:
| In file included from .../recipe-sysroot/usr/include/string.h:519,
|                  from test/test_x509.c:27:
| In function 'memcpy',
|     inlined from 'parse_keyvalue' at test/test_x509.c:845:2,
|     inlined from 'process_conf_file' at test/test_x509.c:1360:7,
|     inlined from 'main' at test/test_x509.c:2038:2:
| .../recipe-sysroot/usr/include/bits/string_fortified.h:34:10: warning: '__builtin_memcpy' specified bound 4294967295 exceeds maximum object size 2147483647 [-Wstringop-overflow=]
|    34 |   return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
|       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Jens Rehsack <sno@netbsd.org>
---
 test/test_x509.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/test/test_x509.c b/test/test_x509.c
index 2c61cf5..76f6ab9 100644
--- a/test/test_x509.c
+++ b/test/test_x509.c
@@ -842,8 +842,7 @@ parse_keyvalue(HT *d)
 		return -1;
 	}
 	name = xmalloc(u + 1);
-	memcpy(name, buf, u);
-	name[u] = 0;
+	snprintf(name, u, "%s", buf);
 	if (HT_get(d, name) != NULL) {
 		xfree(name);
 		return -1;
-- 
2.17.1

