summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2014-09-04 21:37:13 -0400
committerRich Felker <dalias@aerifal.cx>2014-09-04 21:37:13 -0400
commit402611c3ba3be5b3b0486835d98e22ac7ced2722 (patch)
tree306214ea557abff49bbf77fdbe97611f92530044 /src
parent49d2c8c6bcf8c926e52c7f510033b6adc31355f5 (diff)
downloadmusl-402611c3ba3be5b3b0486835d98e22ac7ced2722.tar.gz
musl-402611c3ba3be5b3b0486835d98e22ac7ced2722.tar.bz2
musl-402611c3ba3be5b3b0486835d98e22ac7ced2722.tar.xz
musl-402611c3ba3be5b3b0486835d98e22ac7ced2722.zip
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.
Diffstat (limited to 'src')
-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);