diff options
author | kris <kris@FreeBSD.org> | 2001-07-16 04:04:22 +0000 |
---|---|---|
committer | kris <kris@FreeBSD.org> | 2001-07-16 04:04:22 +0000 |
commit | 38c4ca6c4e9993a1e93c34ef2fba4ee5595db917 (patch) | |
tree | 509f74042984d95cd649abd4f7dcf0ccd00961ce | |
parent | 698159c01a9d99382406a6521df5c5fd292b05ec (diff) | |
download | FreeBSD-src-38c4ca6c4e9993a1e93c34ef2fba4ee5595db917.zip FreeBSD-src-38c4ca6c4e9993a1e93c34ef2fba4ee5595db917.tar.gz |
Oops, commit the version which actually works
Obtained from: NetBSD
MFC After: 1 week
-rw-r--r-- | lib/libc/net/ns_addr.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/libc/net/ns_addr.c b/lib/libc/net/ns_addr.c index f26ed91..75449ed 100644 --- a/lib/libc/net/ns_addr.c +++ b/lib/libc/net/ns_addr.c @@ -187,19 +187,25 @@ Field(buf, out, len) bp = clen + buf - 3; hp = hb + i - 1; - while (hp >= hb) { + while (hp > hb) { if (base16) (void)sscanf(bp, "%3x", hp); else if (base10) (void)sscanf(bp, "%3d", hp); else (void)sscanf(bp, "%3o", hp); - if (hp > hb) { - bp[0] = 0; - hp--; - bp -= 3; - } + + bp[0] = 0; + hp--; + bp -= 3; } + if (base16) + (void)sscanf(buf, "%3x", hp); + else if (base10) + (void)sscanf(buf, "%3d", hp); + else + (void)sscanf(buf, "%3o", hp); + cvtbase((long)ibase, 256, hb, i, out, len); } |