diff options
| author | Peter Pentchev <roam@FreeBSD.org> | 2002-12-02 20:29:08 +0000 |
|---|---|---|
| committer | Peter Pentchev <roam@FreeBSD.org> | 2002-12-02 20:29:08 +0000 |
| commit | c525f9c9a4eec8648c13e21c835b8dd9ec339ba8 (patch) | |
| tree | 734ba55f2e25943bc6d6682d6a6a8c480b70cd70 /usr.sbin/raycontrol | |
| parent | 00e11500e2df39e40f3169df474e2f65785dbd58 (diff) | |
Notes
Diffstat (limited to 'usr.sbin/raycontrol')
| -rw-r--r-- | usr.sbin/raycontrol/raycontrol.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/usr.sbin/raycontrol/raycontrol.c b/usr.sbin/raycontrol/raycontrol.c index e361c5def06f0..c287643929561 100644 --- a/usr.sbin/raycontrol/raycontrol.c +++ b/usr.sbin/raycontrol/raycontrol.c @@ -75,14 +75,12 @@ ray_printhex(u_int8_t *d, char *s, int len) char *p; int i; - if (len > 256) + if (2 * len + strlen(s) * (len - 1) > sizeof(buf) - 1) err(1, "Byte string too long"); sprintf(buf, "%02x", *d); - for (p = buf + 2, i = 1; i < len; i++) { - sprintf(p, "%s%02x", s, *(d+i)); - p = p + 2 + strlen(s); - } + for (p = buf + 2, i = 1; i < len; i++) + p += sprintf(p, "%s%02x", s, *(d+i)); return(buf); } @@ -118,7 +116,7 @@ ray_getsiglev(char *iface, struct ray_siglev *siglev) bzero((char *)&ifr, sizeof(ifr)); - strcpy(ifr.ifr_name, iface); + strlcpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name)); ifr.ifr_data = (caddr_t)siglev; s = socket(AF_INET, SOCK_DGRAM, 0); @@ -140,7 +138,7 @@ ray_getstats(char *iface, struct ray_stats_req *sreq) bzero((char *)&ifr, sizeof(ifr)); - strcpy(ifr.ifr_name, iface); + strlcpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name)); ifr.ifr_data = (caddr_t)sreq; s = socket(AF_INET, SOCK_DGRAM, 0); @@ -271,7 +269,7 @@ ray_setval(char *iface, struct ray_param_req *rreq) bzero((char *)&ifr, sizeof(ifr)); - strcpy(ifr.ifr_name, iface); + strlcpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name)); ifr.ifr_data = (caddr_t)rreq; s = socket(AF_INET, SOCK_DGRAM, 0); |
