From: Ulrich Drepper Date: Sat, 5 Apr 2003 22:24:12 +0000 (+0000) Subject: Update. X-Git-Tag: upstream/2.30~19486 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a9f17952b8655c981638b3243d795961538d8998;p=external%2Fglibc.git Update. * sunrpc/xdr.c (xdr_string): Catch nodesize == 0 [PR libc/4999]. --- diff --git a/ChangeLog b/ChangeLog index 33fac37..d637154 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2003-04-05 Ulrich Drepper + * sunrpc/xdr.c (xdr_string): Catch nodesize == 0 [PR libc/4999]. + * sysdeps/ieee754/ldbl-96/e_gammal_r.c (__ieee754_gammal_r): Always initialize *signgamp before returning an error. diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c index dbe1d88..d99a998 100644 --- a/sunrpc/xdr.c +++ b/sunrpc/xdr.c @@ -704,6 +704,13 @@ xdr_string (xdrs, cpp, maxsize) return FALSE; } nodesize = size + 1; + if (nodesize == 0) + { + /* This means an overflow. It a bug in the caller which + provided a too large maxsize but nevertheless catch it + here. */ + return FALSE; + } /* * now deal with the actual bytes @@ -711,10 +718,6 @@ xdr_string (xdrs, cpp, maxsize) switch (xdrs->x_op) { case XDR_DECODE: - if (nodesize == 0) - { - return TRUE; - } if (sp == NULL) *cpp = sp = (char *) mem_alloc (nodesize); if (sp == NULL)