diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | nscd/netgroupcache.c | 12 |
3 files changed, 18 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2013-01-24 Siddhesh Poyarekar <siddhesh@redhat.com> + + [BZ #16474] + * nscd/netgroupcache.c (addgetnetgrentX): Adjust triplet + string pointers after reallocation. + 2014-01-24 Kaz Kojima <kkojima@rr.iij4u.or.jp> * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Use __SH4__ and @@ -25,7 +25,7 @@ Version 2.19 16151, 16153, 16167, 16169, 16172, 16195, 16214, 16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337, 16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384, 16385, 16386, 16387, 16390, - 16394, 16400, 16407, 16408, 16414, 16430, 16431, 16453. + 16394, 16400, 16407, 16408, 16414, 16430, 16431, 16453, 16474. * Slovenian translations for glibc messages have been contributed by the Translation Project's Slovenian team of translators. diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c index 58234b1..924567c 100644 --- a/nscd/netgroupcache.c +++ b/nscd/netgroupcache.c @@ -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) + : NULL); + nuser = (nuser ? newbuf + (nuser - buffer) + : NULL); + ndomain = (ndomain + ? newbuf + (ndomain - buffer) + : NULL); + buffer = newbuf; } nhost = memcpy (buffer + bufused, |