summaryrefslogtreecommitdiff
path: root/src/stdio/fread.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2016-02-10 19:44:19 -0500
committerRich Felker <dalias@aerifal.cx>2016-02-10 19:44:19 -0500
commit500c6886c654fd45e4926990fee2c61d816be197 (patch)
tree8a46228b4a5880e3f1c57499ef92d123d51dbe07 /src/stdio/fread.c
parent416d1c7a711807384cc21a18163475cf757bbcb5 (diff)
downloadmusl-500c6886c654fd45e4926990fee2c61d816be197.tar.gz
fix return value for fread/fwrite when size argument is 0
when the size argument was zero but nmemb was nonzero, these functions were returning nmemb, despite no data having been written. conceptually this is not wrong, but the standard requires a return value of zero in this case.
Diffstat (limited to 'src/stdio/fread.c')
-rw-r--r--src/stdio/fread.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/stdio/fread.c b/src/stdio/fread.c
index 33a65f58..aef75f73 100644
--- a/src/stdio/fread.c
+++ b/src/stdio/fread.c
@@ -7,6 +7,7 @@ size_t fread(void *restrict destv, size_t size, size_t nmemb, FILE *restrict f)
{
unsigned char *dest = destv;
size_t len = size*nmemb, l = len, k;
+ if (!size) nmemb = 0;
FLOCK(f);