From 424d5967e94f6adf4c0669d390779af8da0bef20 Mon Sep 17 00:00:00 2001
From: Lee Duncan <lduncan@suse.com>
Date: Sat, 18 Sep 2021 16:10:50 -0700
Subject: [PATCH] Fix compiler error introduced with recent IPv6 commit.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Commit 76350316de38 ("Handle IPv6 interfaces correctly.") added
a string copy that creates this gcc-11 error message:

> gcc-11 -O2 -g -Wall -Werror -Wextra -fvisibility=hidden -fPIC -I/usr/include/kmod    -c -o idbm.o idbm.c
> idbm.c: In function ‘_idbm_node_rec_link’:
> idbm.c:999:17: error: ‘strncpy’ specified bound 65 equals destination size [-Werror=stringop-truncation]
>   999 |                 strncpy((*node).iface.name, iface_name, ISCSI_MAX_IFACE_LEN);
>       |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

So copy one less character, maximum.

Upstream-Status: Backport
[https://github.com/open-iscsi/open-iscsi/commit/424d5967e94f6adf4c0669d390779af8da0bef20]

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
 libopeniscsiusr/idbm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libopeniscsiusr/idbm.c b/libopeniscsiusr/idbm.c
index b2524ed..6f57e45 100644
--- a/libopeniscsiusr/idbm.c
+++ b/libopeniscsiusr/idbm.c
@@ -996,7 +996,7 @@ static void _idbm_node_rec_link(struct iscsi_node *node, struct idbm_rec *recs,
 
 	/* use the interface name passed in, if any */
 	if (iface_name)
-		strncpy((*node).iface.name, iface_name, ISCSI_MAX_IFACE_LEN);
+		strncpy((*node).iface.name, iface_name, ISCSI_MAX_IFACE_LEN-1);
 
 	/*
 	 * Note: because we do not add the iface.iscsi_ifacename to
-- 
2.25.1

