Correctly update the end pointer when we expand the buffer.

From Robert Manner.
This commit is contained in:
Todd C. Miller
2022-03-11 08:00:38 -07:00
parent 6ff33922f4
commit c48c511e91

View File

@@ -50,13 +50,13 @@ sudo_getdelim(char **buf, size_t *bufsize, int delim, FILE *fp)
do { do {
if (cp + 1 >= ep) { if (cp + 1 >= ep) {
char *tmp = reallocarray(*buf, *bufsize, 2); char *newbuf = reallocarray(*buf, *bufsize, 2);
if (tmp == NULL) if (newbuf == NULL)
goto bad; goto bad;
*bufsize *= 2; *bufsize *= 2;
cp = tmp + (cp - *buf); cp = newbuf + (cp - *buf);
ep = cp + *bufsize; ep = newbuf + *bufsize;
*buf = tmp; *buf = newbuf;
} }
if ((ch = getc(fp)) == EOF) { if ((ch = getc(fp)) == EOF) {
if (feof(fp)) if (feof(fp))