Skip to content

Commit

Permalink
Update.
Browse files Browse the repository at this point in the history
	* resolv/inet_addr.c (inet_aton): Fix last patch.  The little
	endian version works for both endiannesses.
  • Loading branch information
Ulrich Drepper committed Oct 14, 1999
1 parent 907ea19 commit 1bf60c0
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 14 deletions.
3 changes: 3 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
1999-10-14 Andreas Jaeger <aj@suse.de>

* resolv/inet_addr.c (inet_aton): Fix last patch. The little
endian version works for both endiannesses.

* sysdeps/unix/sysv/linux/sleep.c (__sleep): Optimize for zero
seconds.

Expand Down
16 changes: 2 additions & 14 deletions resolv/inet_addr.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,7 @@ inet_aton(cp, addr)
uint8_t bytes[4];
uint32_t word;
} res;
#if BYTE_ORDER == LITTLE_ENDIAN
register uint8_t *pp = res.bytes;
#else
register uint8_t *pp = &res.bytes[4];
#endif
int digit;

#ifdef _LIBC
Expand Down Expand Up @@ -172,17 +168,10 @@ inet_aton(cp, addr)
* a.b.c (with c treated as 16 bits)
* a.b (with b treated as 24 bits)
*/
if ((BYTE_ORDER == LITTLE_ENDIAN
&& pp >= res.bytes + 3)
|| (BYTE_ORDER == BIG_ENDIAN
&& pp == res.bytes)
if (pp >> res.bytes + 3
|| val > 0xff)
goto ret_0;
#if BYTE_ORDER == LITTLE_ENDIAN
*pp++ = val;
#else
*--pp = val;
#endif
c = *++cp;
} else
break;
Expand All @@ -201,8 +190,7 @@ inet_aton(cp, addr)

/* Check whether the last part is in its limits depending on
the number of parts in total. */
if ((BYTE_ORDER == LITTLE_ENDIAN && val > max[pp - res.bytes])
|| (BYTE_ORDER == BIG_ENDIAN && val > max[res.bytes - pp]))
if (val > max[pp - res.bytes])
goto ret_0;

if (addr)
Expand Down

0 comments on commit 1bf60c0

Please sign in to comment.