Bail out before allocating slides if file is empty - sent - simple plaintext pr… | |
git clone git://git.suckless.org/sent | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit a1dcdad14fb3a8ccdc97e86cb3aa25684778819c | |
parent eac14478e949e29e442922d997f057573ddd9923 | |
Author: Quentin Rameau <[email protected]> | |
Date: Wed, 18 Nov 2015 23:21:33 +0100 | |
Bail out before allocating slides if file is empty | |
In load() we allocated slides before checking if we actually read | |
anything from the FILE fp and then continue with an allocated but | |
“empty” space wich would lead to errors. | |
Diffstat: | |
M sent.c | 8 ++++---- | |
1 file changed, 4 insertions(+), 4 deletions(-) | |
--- | |
diff --git a/sent.c b/sent.c | |
@@ -413,10 +413,6 @@ void load(FILE *fp) | |
/* read each line from fp and add it to the item list */ | |
while (1) { | |
- if ((slidecount+1) * sizeof(*slides) >= size) | |
- if (!(slides = realloc(slides, (size += BUFSIZ)))) | |
- die("cannot realloc %u bytes:", size); | |
- | |
/* eat consecutive empty lines */ | |
while ((p = fgets(buf, sizeof(buf), fp))) | |
if (strcmp(buf, "\n") != 0 && buf[0] != '#') | |
@@ -424,6 +420,10 @@ void load(FILE *fp) | |
if (!p) | |
break; | |
+ if ((slidecount+1) * sizeof(*slides) >= size) | |
+ if (!(slides = realloc(slides, (size += BUFSIZ)))) | |
+ die("cannot realloc %u bytes:", size); | |
+ | |
/* read one slide */ | |
maxlines = 0; | |
memset((s = &slides[slidecount]), 0, sizeof(Slide)); |