summaryrefslogtreecommitdiff
path: root/strbuf.c
diff options
context:
space:
mode:
authorRené Scharfe <l.s.r@web.de>2017-08-10 20:56:40 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-08-10 21:41:51 (GMT)
commit642956cf455ff8635be32b3160b12369da73cfe2 (patch)
tree28219e7da107a88581507855d39c78548dd2208b /strbuf.c
parent3d9c5b5c4461957fbbc0479e037990db04ebb740 (diff)
downloadgit-642956cf455ff8635be32b3160b12369da73cfe2.zip
git-642956cf455ff8635be32b3160b12369da73cfe2.tar.gz
git-642956cf455ff8635be32b3160b12369da73cfe2.tar.bz2
strbuf: clear errno before calling getdelim(3)
getdelim(3) returns -1 at the end of the file and if it encounters an error, but sets errno only in the latter case. Set errno to zero before calling it to avoid misdiagnosing an out-of-memory condition due to a left-over value from some other function call. Reported-by: Yaroslav Halchenko <yoh@onerussian.com> Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'strbuf.c')
-rw-r--r--strbuf.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/strbuf.c b/strbuf.c
index ace58e7..977acba 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -472,6 +472,7 @@ int strbuf_getwholeline(struct strbuf *sb, FILE *fp, int term)
/* Translate slopbuf to NULL, as we cannot call realloc on it */
if (!sb->alloc)
sb->buf = NULL;
+ errno = 0;
r = getdelim(&sb->buf, &sb->alloc, term, fp);
if (r > 0) {