This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Adjust pointers to triplets in netgroup query data (BZ #16474)
- From: Andreas Schwab <schwab at linux-m68k dot org>
- To: Siddhesh Poyarekar <siddhesh at redhat dot com>
- Cc: OndÅej BÃlka <neleai at seznam dot cz>, libc-alpha at sourceware dot org
- Date: Fri, 24 Jan 2014 16:18:43 +0100
- Subject: Re: [PATCH] Adjust pointers to triplets in netgroup query data (BZ #16474)
- Authentication-results: sourceware.org; auth=none
- References: <20140121172451 dot GJ5544 at spoyarek dot pnq dot redhat dot com> <20140123123841 dot GA5631 at domone dot podge> <20140124085757 dot GA5544 at spoyarek dot pnq dot redhat dot com>
Siddhesh Poyarekar <siddhesh@redhat.com> writes:
> @@ -241,7 +241,17 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
> if (buflen - req->key_len - bufused < needed)
> {
> buflen += MAX (buflen, 2 * needed);
> - buffer = xrealloc (buffer, buflen);
> + char *newbuf = xrealloc (buffer, buflen);
> + /* Adjust the pointers in the new
> + buffer. */
> + nhost = (nhost ? newbuf + (nhost - buffer)
This is undefined. If realloc was sucessful then buffer is no longer
valid. You need to compute nhost - buffer before doing the realloc.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."