This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix 'array subscript is above array bounds' warning in res_send.c


On Tue, Dec 16, 2014 at 11:17:04AM +0100, Andreas Schwab wrote:
> Siddhesh Poyarekar <siddhesh@redhat.com> writes:
> 
> > diff --git a/resolv/res_send.c b/resolv/res_send.c
> > index 4a95eb8..5a9882c 100644
> > --- a/resolv/res_send.c
> > +++ b/resolv/res_send.c
> > @@ -429,7 +429,7 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
> >  				while (ns < MAXNS
> >  				       && EXT(statp).nsmap[ns] != MAXNS)
> >  					ns++;
> > -				if (ns == MAXNS)
> > +				if (ns >= MAXNS)
> 
> How is that possible?

The warning is seen on -O3.  The actual access beyond array bounds
shouldn't ever happen since nscount is always set to less than MAXNS.
the compiler however does not know this and hence warns for the
possibility of both nscount's being greater than MAXNS.

So this does not actually fix a bug, only the warning.

Siddhesh

Attachment: pgppjcVReVbpt.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]