X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fstdio%2Ffread.c;h=733d37163aacf0ce20d2585dab0694c513db499a;hb=c9c2cd3e6955cb1d57b8be01d4b072bf44058762;hp=33a65f586ead4649ef537ce53780ea7e12fd0e8e;hpb=6e2bb7acf42589fb7130b039d0623e2ca42503dd;p=oweals%2Fmusl.git diff --git a/src/stdio/fread.c b/src/stdio/fread.c index 33a65f58..733d3716 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); @@ -24,7 +25,7 @@ size_t fread(void *restrict destv, size_t size, size_t nmemb, FILE *restrict f) /* Read the remainder directly */ for (; l; l-=k, dest+=k) { k = __toread(f) ? 0 : f->read(f, dest, l); - if (k+1<=1) { + if (!k) { FUNLOCK(f); return (len-l)/size; }