From cea1f1802d5e0c74b36add3592291987fd02d807 Mon Sep 17 00:00:00 2001 From: markus <> Date: Mon, 1 Sep 2008 09:40:43 +0000 Subject: do not overflow for large prefix len (e.g. 2147483649) report Maksymilian Arciemowicz; ok djm, deraadt --- src/lib/libc/net/inet_net_pton.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/lib/libc/net/inet_net_pton.c b/src/lib/libc/net/inet_net_pton.c index 9bb35478ca..3105c33b43 100644 --- a/src/lib/libc/net/inet_net_pton.c +++ b/src/lib/libc/net/inet_net_pton.c @@ -1,4 +1,4 @@ -/* $OpenBSD: inet_net_pton.c,v 1.5 2005/08/06 20:30:03 espie Exp $ */ +/* $OpenBSD: inet_net_pton.c,v 1.6 2008/09/01 09:40:43 markus Exp $ */ /* * Copyright (c) 1996 by Internet Software Consortium. @@ -142,12 +142,12 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) assert(n >= 0 && n <= 9); bits *= 10; bits += n; + if (bits > 32) + goto emsgsize; } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch)); if (ch != '\0') goto enoent; - if (bits > 32) - goto emsgsize; } /* Firey death and destruction unless we prefetched EOS. */ -- cgit v1.2.3-55-g6feb