summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-09-04 21:37:13 -0400
committerRich Felker <dalias@aerifal.cx>2015-03-30 01:15:44 -0400
commit6d14779eabec925c3977584d5dfd52778047b856 (patch)
treeff2c591126fa0f84e79857bfc28dfb425e0b4c0d
parent83eb88d6c2f91a80ab1a48458d8de18c31c4ebb0 (diff)
downloadmusl-6d14779eabec925c3977584d5dfd52778047b856.tar.gz
suppress null termination when fgets reads EOF with no data
the C standard requires that "the contents of the array remain unchanged" in this case. this patch also changes the behavior on read errors, but in that case "the array contents are indeterminate", so the application cannot inspect them anyway. (cherry picked from commit 402611c3ba3be5b3b0486835d98e22ac7ced2722)
-rw-r--r--src/stdio/fgets.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/stdio/fgets.c b/src/stdio/fgets.c
index b01a4187..cf5b1039 100644
--- a/src/stdio/fgets.c
+++ b/src/stdio/fgets.c
@@ -34,7 +34,7 @@ char *fgets(char *restrict s, int n, FILE *restrict f)
n--;
if ((*p++ = c) == '\n') break;
}
- *p = 0;
+ if (s) *p = 0;
FUNLOCK(f);