Module Name:    src
Committed By:   christos
Date:           Thu Nov 14 04:24:33 UTC 2013

Modified Files:
        src/external/bsd/dhcpcd/dist: if-options.c

Log Message:
CID 1102787: Only copy the interface name if it is NUL terminated, avoiding
a buffer overrun by one in the equals case.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.21 -r1.2 src/external/bsd/dhcpcd/dist/if-options.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/bsd/dhcpcd/dist/if-options.c
diff -u src/external/bsd/dhcpcd/dist/if-options.c:1.1.1.21 src/external/bsd/dhcpcd/dist/if-options.c:1.2
--- src/external/bsd/dhcpcd/dist/if-options.c:1.1.1.21	Fri Sep 20 06:51:29 2013
+++ src/external/bsd/dhcpcd/dist/if-options.c	Wed Nov 13 23:24:33 2013
@@ -1,5 +1,5 @@
 #include <sys/cdefs.h>
- __RCSID("$NetBSD: if-options.c,v 1.1.1.21 2013/09/20 10:51:29 roy Exp $");
+ __RCSID("$NetBSD: if-options.c,v 1.2 2013/11/14 04:24:33 christos Exp $");
 
 /*
  * dhcpcd - DHCP client daemon
@@ -1168,9 +1168,8 @@ finish_config6(struct if_options *ifo, c
 			if (ifo->ia_type == 0)
 				ifo->ia_type = D6_OPTION_IA_NA;
 			ifo->iaid_len = strlen(ifname);
-			if (ifo->iaid_len <= sizeof(ifo->iaid->iaid)) {
-				strncpy((char *)ifo->iaid->iaid, ifname,
-					sizeof(ifo->iaid->iaid));
+			if (ifo->iaid_len < sizeof(ifo->iaid->iaid)) {
+				memcpy(ifo->iaid->iaid, ifname, len);
 				memset(ifo->iaid->iaid + ifo->iaid_len, 0,
 					sizeof(ifo->iaid->iaid) -ifo->iaid_len);
 			} else {

Reply via email to