diff options
author | deraadt <> | 2002-05-22 04:31:14 +0000 |
---|---|---|
committer | deraadt <> | 2002-05-22 04:31:14 +0000 |
commit | 4bb76773d7dd0051cb98a137db9aeefb61518f5a (patch) | |
tree | abd44c5b948cca470ede658e465fb04654998464 /src/lib/libc/net/gethostnamadr.c | |
parent | 7ebf0f8371844decf17c65829147760ed09339a6 (diff) | |
download | openbsd-4bb76773d7dd0051cb98a137db9aeefb61518f5a.tar.gz openbsd-4bb76773d7dd0051cb98a137db9aeefb61518f5a.tar.bz2 openbsd-4bb76773d7dd0051cb98a137db9aeefb61518f5a.zip |
more strlcpy and snprintf
Diffstat (limited to 'src/lib/libc/net/gethostnamadr.c')
-rw-r--r-- | src/lib/libc/net/gethostnamadr.c | 68 |
1 files changed, 31 insertions, 37 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) |
55 | static char rcsid[] = "$OpenBSD: gethostnamadr.c,v 1.46 2002/05/18 00:06:42 itojun Exp $"; | 55 | static 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 |