From: Andreas Schwab Date: Wed, 2 Feb 2011 13:59:04 +0000 (-0500) Subject: Fix range error handling in sgetspent. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b472343aa6febfb469b1022b4cf56d519ab30022;p=thirdparty%2Fglibc.git Fix range error handling in sgetspent. (cherry picked from commit 10a656fe33d8257531ff3e9a882d3fd7db6ce5b3) --- diff --git a/ChangeLog b/ChangeLog index b4dcd7f0e4d..6f3a19b118c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-02-02 Andreas Schwab + + * shadow/sgetspent.c: Check return value of __sgetspent_r instead + of errno. + 2010-10-01 Andreas Schwab * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't discard result of diff --git a/shadow/sgetspent.c b/shadow/sgetspent.c index ec7f384fa65..f3dce53ea30 100644 --- a/shadow/sgetspent.c +++ b/shadow/sgetspent.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -49,8 +49,8 @@ sgetspent (const char *string) } while (buffer != NULL - && __sgetspent_r (string, &resbuf, buffer, buffer_size, &result) != 0 - && errno == ERANGE) + && (__sgetspent_r (string, &resbuf, buffer, buffer_size, &result) + == ERANGE)) { char *new_buf; buffer_size += BUFLEN_SPWD;