summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryanick <>1999-05-03 22:31:14 +0000
committeryanick <>1999-05-03 22:31:14 +0000
commit70c467211290751b1863ec14977acaae93b73b53 (patch)
tree43ebf393647407c637c189f368e9b6ff00d7fe4d
parentcca189ae987ddf4e5e3f62d65b18366f355b6806 (diff)
downloadopenbsd-70c467211290751b1863ec14977acaae93b73b53.tar.gz
openbsd-70c467211290751b1863ec14977acaae93b73b53.tar.bz2
openbsd-70c467211290751b1863ec14977acaae93b73b53.zip
Add octect sanity checking
-rw-r--r--src/lib/libc/net/inet_addr.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/libc/net/inet_addr.c b/src/lib/libc/net/inet_addr.c
index 5e4dcdafb2..6203ccdaac 100644
--- a/src/lib/libc/net/inet_addr.c
+++ b/src/lib/libc/net/inet_addr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: inet_addr.c,v 1.5 1997/04/05 21:13:10 millert Exp $ */ 1/* $OpenBSD: inet_addr.c,v 1.6 1999/05/03 22:31:14 yanick Exp $ */
2 2
3/* 3/*
4 * ++Copyright++ 1983, 1990, 1993 4 * ++Copyright++ 1983, 1990, 1993
@@ -60,7 +60,7 @@
60static char sccsid[] = "@(#)inet_addr.c 8.1 (Berkeley) 6/17/93"; 60static char sccsid[] = "@(#)inet_addr.c 8.1 (Berkeley) 6/17/93";
61static char rcsid[] = "$From: inet_addr.c,v 8.5 1996/08/05 08:31:35 vixie Exp $"; 61static char rcsid[] = "$From: inet_addr.c,v 8.5 1996/08/05 08:31:35 vixie Exp $";
62#else 62#else
63static char rcsid[] = "$OpenBSD: inet_addr.c,v 1.5 1997/04/05 21:13:10 millert Exp $"; 63static char rcsid[] = "$OpenBSD: inet_addr.c,v 1.6 1999/05/03 22:31:14 yanick Exp $";
64#endif 64#endif
65#endif /* LIBC_SCCS and not lint */ 65#endif /* LIBC_SCCS and not lint */
66 66
@@ -164,19 +164,19 @@ inet_aton(cp, addr)
164 break; 164 break;
165 165
166 case 2: /* a.b -- 8.24 bits */ 166 case 2: /* a.b -- 8.24 bits */
167 if (val > 0xffffff) 167 if ((val > 0xffffff) || (parts[0] > 0xff))
168 return (0); 168 return (0);
169 val |= parts[0] << 24; 169 val |= parts[0] << 24;
170 break; 170 break;
171 171
172 case 3: /* a.b.c -- 8.8.16 bits */ 172 case 3: /* a.b.c -- 8.8.16 bits */
173 if (val > 0xffff) 173 if ((val > 0xffff) || (parts[0] > 0xff) || (parts[1] > 0xff))
174 return (0); 174 return (0);
175 val |= (parts[0] << 24) | (parts[1] << 16); 175 val |= (parts[0] << 24) | (parts[1] << 16);
176 break; 176 break;
177 177
178 case 4: /* a.b.c.d -- 8.8.8.8 bits */ 178 case 4: /* a.b.c.d -- 8.8.8.8 bits */
179 if (val > 0xff) 179 if ((val > 0xff) || (parts[0] > 0xff) || (parts[1] > 0xff) || (parts[2] > 0xff))
180 return (0); 180 return (0);
181 val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); 181 val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8);
182 break; 182 break;