it* My version of sent Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/sent-sdk.git URL:git://git.codevoid.de/sent-sdk.git codevoid.de 70 1Log /git/sent-sdk/log.gph codevoid.de 70 1Files /git/sent-sdk/files.gph codevoid.de 70 1Refs /git/sent-sdk/refs.gph codevoid.de 70 1README /git/sent-sdk/file/README.md.gph codevoid.de 70 1LICENSE /git/sent-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit a1dcdad14fb3a8ccdc97e86cb3aa25684778819c /git/sent-sdk/commit/a1dcdad14fb3a8ccdc97e86cb3aa25684778819c.gph codevoid.de 70 1parent eac14478e949e29e442922d997f057573ddd9923 /git/sent-sdk/commit/eac14478e949e29e442922d997f057573ddd9923.gph codevoid.de 70 hAuthor: Quentin Rameau URL:mailto:quinq+hackers@fifth.space codevoid.de 70 iDate: Wed, 18 Nov 2015 23:21:33 +0100 Err codevoid.de 70 i Err codevoid.de 70 iBail out before allocating slides if file is empty Err codevoid.de 70 i Err codevoid.de 70 iIn load() we allocated slides before checking if we actually read Err codevoid.de 70 ianything from the FILE fp and then continue with an allocated but Err codevoid.de 70 i“empty” space wich would lead to errors. Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M sent.c | 8 ++++---- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 4 insertions(+), 4 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/sent.c b/sent.c /git/sent-sdk/file/sent.c.gph codevoid.de 70 it@@ -413,10 +413,6 @@ void load(FILE *fp) Err codevoid.de 70 i Err codevoid.de 70 i /* read each line from fp and add it to the item list */ Err codevoid.de 70 i while (1) { Err codevoid.de 70 i- if ((slidecount+1) * sizeof(*slides) >= size) Err codevoid.de 70 i- if (!(slides = realloc(slides, (size += BUFSIZ)))) Err codevoid.de 70 i- die("cannot realloc %u bytes:", size); Err codevoid.de 70 i- Err codevoid.de 70 i /* eat consecutive empty lines */ Err codevoid.de 70 i while ((p = fgets(buf, sizeof(buf), fp))) Err codevoid.de 70 i if (strcmp(buf, "\n") != 0 && buf[0] != '#') Err codevoid.de 70 it@@ -424,6 +420,10 @@ void load(FILE *fp) Err codevoid.de 70 i if (!p) Err codevoid.de 70 i break; Err codevoid.de 70 i Err codevoid.de 70 i+ if ((slidecount+1) * sizeof(*slides) >= size) Err codevoid.de 70 i+ if (!(slides = realloc(slides, (size += BUFSIZ)))) Err codevoid.de 70 i+ die("cannot realloc %u bytes:", size); Err codevoid.de 70 i+ Err codevoid.de 70 i /* read one slide */ Err codevoid.de 70 i maxlines = 0; Err codevoid.de 70 i memset((s = &slides[slidecount]), 0, sizeof(Slide)); Err codevoid.de 70 .