aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--NEWS2
-rw-r--r--nscd/netgroupcache.c12
3 files changed, 18 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 0f4453e..1d19695 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/NEWS b/NEWS
index f4f22a8..5601403 100644
--- a/NEWS
+++ b/NEWS
@@ -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,