diff options
author | Rich Felker <dalias@aerifal.cx> | 2014-09-04 21:37:13 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2014-09-04 21:37:13 -0400 |
commit | 402611c3ba3be5b3b0486835d98e22ac7ced2722 (patch) | |
tree | 306214ea557abff49bbf77fdbe97611f92530044 /src | |
parent | 49d2c8c6bcf8c926e52c7f510033b6adc31355f5 (diff) | |
download | musl-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.c | 2 |
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); |