diff options
| author | Roy Marples <roy@marples.name> | 2016-11-29 21:27:01 +0000 |
|---|---|---|
| committer | Roy Marples <roy@marples.name> | 2016-11-29 21:27:01 +0000 |
| commit | 72fca43053c786408f3a05769ab70f3fe450a6d6 (patch) | |
| tree | d72571c8d06ff4be9100e5d6eb9f93ffb8581b58 | |
| parent | b97c75201c83f16643646e9a4a9e1b2b0c501d76 (diff) | |
| download | dhcpcd-72fca43053c786408f3a05769ab70f3fe450a6d6.tar.xz | |
Don't trust bootp->sname to be NULL terminated.
| -rw-r--r-- | dhcp.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -2624,7 +2624,7 @@ log_dhcp(int lvl, const char *msg, const struct in_addr *from, int ad) { const char *tfrom; - char *a, sname[sizeof(bootp->sname) * 4]; + char *a, sname[sizeof(bootp->sname) * 4]; struct in_addr addr; int r; uint8_t overl; @@ -2663,8 +2663,8 @@ log_dhcp(int lvl, const char *msg, DHO_OPTSOVERLOADED) == -1) overl = 0; if (bootp->sname[0] && r == 0 && !(overl & 2)) { - print_string(sname, sizeof(sname), OT_STRING, - bootp->sname, strlen((const char *)bootp->sname)); + print_string(sname, sizeof(sname), OT_STRING | OT_DOMAIN, + bootp->sname, sizeof(bootp->sname)); if (a == NULL) logger(ifp->ctx, lvl, "%s: %s %s %s `%s'", ifp->name, msg, tfrom, inet_ntoa(addr), sname); |
