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 '')
| -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 |
