[PATCH 10/10] lib: fwts_hwinfo: ensure buf.ifr_name is null terminated
Colin King
colin.king at canonical.com
Thu May 1 14:01:21 UTC 2014
From: Colin Ian King <colin.king at canonical.com>
don't strncpy the entire buffer size as this leaves no space for
string terminator.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/lib/src/fwts_hwinfo.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/lib/src/fwts_hwinfo.c b/src/lib/src/fwts_hwinfo.c
index 3138485..6f0e5bf 100644
--- a/src/lib/src/fwts_hwinfo.c
+++ b/src/lib/src/fwts_hwinfo.c
@@ -380,7 +380,7 @@ static int fwts_hwinfo_net_get(
}
while ((d = readdir(dp)) != NULL) {
- struct ifreq buf;
+ struct ifreq buf;
struct in_addr in_addr;
fwts_net_config *net_config;
@@ -397,7 +397,7 @@ static int fwts_hwinfo_net_get(
break;
}
memset(&buf, 0, sizeof(buf));
- strncpy(buf.ifr_name, d->d_name, sizeof(buf.ifr_name));
+ strncpy(buf.ifr_name, d->d_name, sizeof(buf.ifr_name) - 1);
if (ioctl(sock, SIOCGIFHWADDR, &buf) < 0) {
fwts_log_error(fw, "Cannot get network information for device %s.", d->d_name);
fwts_hwinfo_net_free(net_config);
@@ -410,7 +410,7 @@ static int fwts_hwinfo_net_get(
break;
}
memset(&buf, 0, sizeof(buf));
- strncpy(buf.ifr_name, d->d_name, sizeof(buf.ifr_name));
+ strncpy(buf.ifr_name, d->d_name, sizeof(buf.ifr_name) - 1);
if (ioctl(sock, SIOCGIFADDR, &buf) < 0) {
if (errno != EADDRNOTAVAIL)
fwts_log_error(fw, "Cannot get address for device %s.", d->d_name);
--
2.0.0.rc0
More information about the fwts-devel
mailing list