From bbbeec9ed742208ca6f5d810f185183ec33cd76a Mon Sep 17 00:00:00 2001 From: Avril Date: Sat, 8 May 2021 12:13:10 +0100 Subject: [PATCH] fix OOB fwrite --- .gitignore | 4 ++++ src/bits.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6f0b911 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +bits-* +perf.* +*.svg +obj/ diff --git a/src/bits.c b/src/bits.c index 7120b2a..e6d2462 100644 --- a/src/bits.c +++ b/src/bits.c @@ -20,7 +20,7 @@ static int fwrite_all(const void* buf, size_t esz, size_t num, FILE* out) register size_t w, done=0; register size_t fsz = esz * num; const char* tbuf = (const char*)buf; - while( (w = fwrite(tbuf+done, 1, fsz, out)) > 0 && done < fsz) done+=w; + while( (w = fwrite(tbuf+done, 1, fsz-done, out)) > 0 && done < fsz) done+=w; if (done!=fsz) return 0; else return 1; }