t* My version of sent URI git clone git://git.codevoid.de/sent-sdk.git DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit a1dcdad14fb3a8ccdc97e86cb3aa25684778819c DIR parent eac14478e949e29e442922d997f057573ddd9923 URI Author: Quentin Rameau <quinq+hackers@fifth.space> 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(-) --- DIR diff --git a/sent.c b/sent.c t@@ -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] != '#') t@@ -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));