summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorderaadt <>2002-05-22 04:31:14 +0000
committerderaadt <>2002-05-22 04:31:14 +0000
commit4bb76773d7dd0051cb98a137db9aeefb61518f5a (patch)
treeabd44c5b948cca470ede658e465fb04654998464 /src
parent7ebf0f8371844decf17c65829147760ed09339a6 (diff)
downloadopenbsd-4bb76773d7dd0051cb98a137db9aeefb61518f5a.tar.gz
openbsd-4bb76773d7dd0051cb98a137db9aeefb61518f5a.tar.bz2
openbsd-4bb76773d7dd0051cb98a137db9aeefb61518f5a.zip
more strlcpy and snprintf
Diffstat (limited to 'src')
-rw-r--r--src/lib/libc/net/gethostnamadr.c68
-rw-r--r--src/lib/libc/net/getnameinfo.c14
-rw-r--r--src/lib/libc/net/rcmd.c6
3 files changed, 41 insertions, 47 deletions
diff --git a/src/lib/libc/net/gethostnamadr.c b/src/lib/libc/net/gethostnamadr.c
index a0bee88a6d..cdc42c4329 100644
--- a/src/lib/libc/net/gethostnamadr.c
+++ b/src/lib/libc/net/gethostnamadr.c
@@ -52,7 +52,7 @@
52 */ 52 */
53 53
54#if defined(LIBC_SCCS) && !defined(lint) 54#if defined(LIBC_SCCS) && !defined(lint)
55static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.46 2002/05/18 00:06:42 itojun Exp $"; 55static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.47 2002/05/22 04:31:14 deraadt Exp $";
56#endif /* LIBC_SCCS and not lint */ 56#endif /* LIBC_SCCS and not lint */
57 57
58#include <sys/param.h> 58#include <sys/param.h>
@@ -712,18 +712,15 @@ gethostbyaddr(addr, len, af)
712 } 712 }
713 switch (af) { 713 switch (af) {
714 case AF_INET: 714 case AF_INET:
715 (void) sprintf(qbuf, "%u.%u.%u.%u.in-addr.arpa", 715 (void) snprintf(qbuf, sizeof qbuf, "%u.%u.%u.%u.in-addr.arpa",
716 (uaddr[3] & 0xff), 716 (uaddr[3] & 0xff), (uaddr[2] & 0xff),
717 (uaddr[2] & 0xff), 717 (uaddr[1] & 0xff), (uaddr[0] & 0xff));
718 (uaddr[1] & 0xff),
719 (uaddr[0] & 0xff));
720 break; 718 break;
721 case AF_INET6: 719 case AF_INET6:
722 qp = qbuf; 720 qp = qbuf;
723 for (n = IN6ADDRSZ - 1; n >= 0; n--) { 721 for (n = IN6ADDRSZ - 1; n >= 0; n--) {
724 qp += sprintf(qp, "%x.%x.", 722 qp += sprintf(qp, "%x.%x.",
725 uaddr[n] & 0xf, 723 uaddr[n] & 0xf, (uaddr[n] >> 4) & 0xf);
726 (uaddr[n] >> 4) & 0xf);
727 } 724 }
728 strcpy(qp, "ip6.int"); 725 strcpy(qp, "ip6.int");
729 break; 726 break;
@@ -1025,11 +1022,9 @@ _yp_gethtbyaddr(addr)
1025 if (_yp_check(&__ypdomain) == 0) 1022 if (_yp_check(&__ypdomain) == 0)
1026 return (hp); 1023 return (hp);
1027 } 1024 }
1028 sprintf(name, "%u.%u.%u.%u", 1025 snprintf(name, sizeof name, "%u.%u.%u.%u",
1029 ((unsigned)addr[0] & 0xff), 1026 ((unsigned)addr[0] & 0xff), ((unsigned)addr[1] & 0xff),
1030 ((unsigned)addr[1] & 0xff), 1027 ((unsigned)addr[2] & 0xff), ((unsigned)addr[3] & 0xff));
1031 ((unsigned)addr[2] & 0xff),
1032 ((unsigned)addr[3] & 0xff));
1033 if (__ypcurrent) 1028 if (__ypcurrent)
1034 free(__ypcurrent); 1029 free(__ypcurrent);
1035 __ypcurrent = NULL; 1030 __ypcurrent = NULL;
@@ -1137,34 +1132,33 @@ addrsort(ap, num)
1137 1132
1138 p = ap; 1133 p = ap;
1139 for (i = 0; i < num; i++, p++) { 1134 for (i = 0; i < num; i++, p++) {
1140 for (j = 0 ; (unsigned)j < _res.nsort; j++) 1135 for (j = 0 ; (unsigned)j < _res.nsort; j++)
1141 if (_res.sort_list[j].addr.s_addr == 1136 if (_res.sort_list[j].addr.s_addr ==
1142 (((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask)) 1137 (((struct in_addr *)(*p))->s_addr & _res.sort_list[j].mask))
1143 break; 1138 break;
1144 aval[i] = j; 1139 aval[i] = j;
1145 if (needsort == 0 && i > 0 && j < aval[i-1]) 1140 if (needsort == 0 && i > 0 && j < aval[i-1])
1146 needsort = i; 1141 needsort = i;
1147 } 1142 }
1148 if (!needsort) 1143 if (!needsort)
1149 return; 1144 return;
1150 1145
1151 while (needsort < num) { 1146 while (needsort < num) {
1152 for (j = needsort - 1; j >= 0; j--) { 1147 for (j = needsort - 1; j >= 0; j--) {
1153 if (aval[j] > aval[j+1]) { 1148 if (aval[j] > aval[j+1]) {
1154 char *hp; 1149 char *hp;
1155 1150
1156 i = aval[j]; 1151 i = aval[j];
1157 aval[j] = aval[j+1]; 1152 aval[j] = aval[j+1];
1158 aval[j+1] = i; 1153 aval[j+1] = i;
1159 1154
1160 hp = ap[j]; 1155 hp = ap[j];
1161 ap[j] = ap[j+1]; 1156 ap[j] = ap[j+1];
1162 ap[j+1] = hp; 1157 ap[j+1] = hp;
1163 1158 } else
1164 } else 1159 break;
1165 break; 1160 }
1166 } 1161 needsort++;
1167 needsort++;
1168 } 1162 }
1169} 1163}
1170#endif 1164#endif
diff --git a/src/lib/libc/net/getnameinfo.c b/src/lib/libc/net/getnameinfo.c
index 15dc9dcdea..3f37d85d73 100644
--- a/src/lib/libc/net/getnameinfo.c
+++ b/src/lib/libc/net/getnameinfo.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: getnameinfo.c,v 1.23 2002/02/17 19:42:23 millert Exp $ */ 1/* $OpenBSD: getnameinfo.c,v 1.24 2002/05/22 04:31:14 deraadt Exp $ */
2/* $KAME: getnameinfo.c,v 1.45 2000/09/25 22:43:56 itojun Exp $ */ 2/* $KAME: getnameinfo.c,v 1.45 2000/09/25 22:43:56 itojun Exp $ */
3 3
4/* 4/*
@@ -141,17 +141,17 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
141 sp = NULL; 141 sp = NULL;
142 else { 142 else {
143 sp = getservbyport(port, 143 sp = getservbyport(port,
144 (flags & NI_DGRAM) ? "udp" : "tcp"); 144 (flags & NI_DGRAM) ? "udp" : "tcp");
145 } 145 }
146 if (sp) { 146 if (sp) {
147 if (strlen(sp->s_name) + 1 > servlen) 147 if (strlen(sp->s_name) + 1 > servlen)
148 return EAI_MEMORY; 148 return EAI_MEMORY;
149 strcpy(serv, sp->s_name); 149 strlcpy(serv, sp->s_name, servlen);
150 } else { 150 } else {
151 snprintf(numserv, sizeof(numserv), "%d", ntohs(port)); 151 snprintf(numserv, sizeof(numserv), "%d", ntohs(port));
152 if (strlen(numserv) + 1 > servlen) 152 if (strlen(numserv) + 1 > servlen)
153 return EAI_MEMORY; 153 return EAI_MEMORY;
154 strcpy(serv, numserv); 154 strlcpy(serv, numserv, servlen);
155 } 155 }
156 } 156 }
157 157
@@ -224,7 +224,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
224 numaddrlen = strlen(numaddr); 224 numaddrlen = strlen(numaddr);
225 if (numaddrlen + 1 > hostlen) /* don't forget terminator */ 225 if (numaddrlen + 1 > hostlen) /* don't forget terminator */
226 return EAI_MEMORY; 226 return EAI_MEMORY;
227 strcpy(host, numaddr); 227 strlcpy(host, numaddr, hostlen);
228 break; 228 break;
229 } 229 }
230 } else { 230 } else {
@@ -247,7 +247,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags)
247 if (strlen(hp->h_name) + 1 > hostlen) { 247 if (strlen(hp->h_name) + 1 > hostlen) {
248 return EAI_MEMORY; 248 return EAI_MEMORY;
249 } 249 }
250 strcpy(host, hp->h_name); 250 strlcpy(host, hp->h_name, hostlen);
251 } else { 251 } else {
252 if (flags & NI_NAMEREQD) 252 if (flags & NI_NAMEREQD)
253 return EAI_NONAME; 253 return EAI_NONAME;
@@ -293,7 +293,7 @@ ip6_parsenumeric(sa, addr, host, hostlen, flags)
293 numaddrlen = strlen(numaddr); 293 numaddrlen = strlen(numaddr);
294 if (numaddrlen + 1 > hostlen) /* don't forget terminator */ 294 if (numaddrlen + 1 > hostlen) /* don't forget terminator */
295 return EAI_MEMORY; 295 return EAI_MEMORY;
296 strcpy(host, numaddr); 296 strlcpy(host, numaddr, hostlen);
297 297
298 if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) { 298 if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) {
299 char zonebuf[MAXHOSTNAMELEN]; 299 char zonebuf[MAXHOSTNAMELEN];
diff --git a/src/lib/libc/net/rcmd.c b/src/lib/libc/net/rcmd.c
index 143b667ba8..d6814676f4 100644
--- a/src/lib/libc/net/rcmd.c
+++ b/src/lib/libc/net/rcmd.c
@@ -34,7 +34,7 @@
34 */ 34 */
35 35
36#if defined(LIBC_SCCS) && !defined(lint) 36#if defined(LIBC_SCCS) && !defined(lint)
37static char *rcsid = "$OpenBSD: rcmd.c,v 1.41 2002/02/17 19:42:23 millert Exp $"; 37static char *rcsid = "$OpenBSD: rcmd.c,v 1.42 2002/05/22 04:31:14 deraadt Exp $";
38#endif /* LIBC_SCCS and not lint */ 38#endif /* LIBC_SCCS and not lint */
39 39
40#include <sys/param.h> 40#include <sys/param.h>
@@ -175,7 +175,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
175 hbuf[0] = '\0'; 175 hbuf[0] = '\0';
176 if (getnameinfo(r->ai_addr, r->ai_addrlen, 176 if (getnameinfo(r->ai_addr, r->ai_addrlen,
177 hbuf, sizeof(hbuf), NULL, 0, niflags) != 0) 177 hbuf, sizeof(hbuf), NULL, 0, niflags) != 0)
178 strcpy(hbuf, "(invalid)"); 178 strlcpy(hbuf, "(invalid)", sizeof hbuf);
179 (void)fprintf(stderr, "connect to address %s: ", hbuf); 179 (void)fprintf(stderr, "connect to address %s: ", hbuf);
180 errno = oerrno; 180 errno = oerrno;
181 perror(0); 181 perror(0);
@@ -183,7 +183,7 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
183 hbuf[0] = '\0'; 183 hbuf[0] = '\0';
184 if (getnameinfo(r->ai_addr, r->ai_addrlen, 184 if (getnameinfo(r->ai_addr, r->ai_addrlen,
185 hbuf, sizeof(hbuf), NULL, 0, niflags) != 0) 185 hbuf, sizeof(hbuf), NULL, 0, niflags) != 0)
186 strcpy(hbuf, "(invalid)"); 186 strlcpy(hbuf, "(invalid)", sizeof hbuf);
187 (void)fprintf(stderr, "Trying %s...\n", hbuf); 187 (void)fprintf(stderr, "Trying %s...\n", hbuf);
188 continue; 188 continue;
189 } 189 }