diff options
author | gmorris <gmorris> | 2005-03-06 16:27:36 +0000 |
---|---|---|
committer | gmorris <gmorris> | 2005-03-06 16:27:36 +0000 |
commit | 7d6fa6e153b26e0e9ad2dfdff3ce2168c46dd16b (patch) | |
tree | c0c24e08f832604d092509669c03774283c10795 /support/nfs/cacheio.c | |
parent | 956008acd1ec89ab03aebdbd5533a5630cf4804a (diff) | |
download | nfs-utils-7d6fa6e153b26e0e9ad2dfdff3ce2168c46dd16b.tar.gz nfs-utils-7d6fa6e153b26e0e9ad2dfdff3ce2168c46dd16b.tar.xz nfs-utils-7d6fa6e153b26e0e9ad2dfdff3ce2168c46dd16b.zip |
Fix bug [ 1157791 ] Segfault in mountd.
Diffstat (limited to 'support/nfs/cacheio.c')
-rw-r--r-- | support/nfs/cacheio.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c index 33231b0..d7ad429 100644 --- a/support/nfs/cacheio.c +++ b/support/nfs/cacheio.c @@ -205,16 +205,17 @@ int readline(int fd, char **buf, int *lenp) */ char *new; int nl; - *lenp += 128; + *lenp *= 2; new = realloc(*buf, *lenp); if (new == NULL) return 0; - nl = read(fd, *buf +len, *lenp - len); - if (nl <= 0 ) + *buf = new; + nl = read(fd, *buf + len, *lenp - len); + if (nl <= 0) return 0; - new += nl; + len += nl; } - (*buf)[len-1] = 0; + (*buf)[len-1] = '\0'; return 1; } |