You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.1 KiB
52 lines
2.1 KiB
From fcad7de1a8c3d140d1d0eb120727966017d3727b Mon Sep 17 00:00:00 2001 |
|
From: Chris Leech <cleech@redhat.com> |
|
Date: Sat, 17 Aug 2013 15:50:45 -0700 |
|
Subject: libiscsi: fix incorrect strncpy use |
|
|
|
Changes to internal structures make the src and dst buffers of some |
|
copies (potentially) different sizes. Fix strncpy calls that were using |
|
the size of the src argument as the limit. |
|
--- |
|
libiscsi/libiscsi.c | 19 ++++++++----------- |
|
1 file changed, 8 insertions(+), 11 deletions(-) |
|
|
|
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c |
|
index 6e6846a..064e4b5 100644 |
|
--- a/libiscsi/libiscsi.c |
|
+++ b/libiscsi/libiscsi.c |
|
@@ -587,15 +587,13 @@ int libiscsi_get_firmware_network_config( |
|
return ENODEV; |
|
|
|
config->dhcp = strlen(fw_entry.dhcp) ? 1 : 0; |
|
- strncpy(config->iface_name, fw_entry.iface, sizeof fw_entry.iface); |
|
- strncpy(config->mac_address, fw_entry.mac, sizeof fw_entry.mac); |
|
- strncpy(config->ip_address, fw_entry.ipaddr, sizeof fw_entry.ipaddr); |
|
- strncpy(config->netmask, fw_entry.mask, sizeof fw_entry.mask); |
|
- strncpy(config->gateway, fw_entry.gateway, sizeof fw_entry.gateway); |
|
- strncpy(config->primary_dns, fw_entry.primary_dns, |
|
- sizeof fw_entry.primary_dns); |
|
- strncpy(config->secondary_dns, fw_entry.secondary_dns, |
|
- sizeof fw_entry.secondary_dns); |
|
+ strlcpy(config->iface_name, fw_entry.iface, LIBISCSI_VALUE_MAXLEN); |
|
+ strlcpy(config->mac_address, fw_entry.mac, LIBISCSI_VALUE_MAXLEN); |
|
+ strlcpy(config->ip_address, fw_entry.ipaddr, LIBISCSI_VALUE_MAXLEN); |
|
+ strlcpy(config->netmask, fw_entry.mask, LIBISCSI_VALUE_MAXLEN); |
|
+ strlcpy(config->gateway, fw_entry.gateway, LIBISCSI_VALUE_MAXLEN); |
|
+ strlcpy(config->primary_dns, fw_entry.primary_dns, LIBISCSI_VALUE_MAXLEN); |
|
+ strlcpy(config->secondary_dns, fw_entry.secondary_dns, LIBISCSI_VALUE_MAXLEN); |
|
return 0; |
|
} |
|
|
|
@@ -613,8 +611,7 @@ int libiscsi_get_firmware_initiator_name(char *initiatorname) |
|
if (fw_get_entry(&fw_entry)) |
|
return ENODEV; |
|
|
|
- strncpy(initiatorname, fw_entry.initiatorname, |
|
- sizeof fw_entry.initiatorname); |
|
+ strlcpy(initiatorname, fw_entry.initiatorname, LIBISCSI_VALUE_MAXLEN); |
|
|
|
return 0; |
|
} |
|
-- |
|
1.8.1.4 |
|
|
|
|