commit fdf5a2b53a7499e5860323255d914191aee7cdba
Author:     FRIGN <[email protected]>
AuthorDate: Mon Mar 21 22:54:49 2016 +0100
Commit:     FRIGN <[email protected]>
CommitDate: Mon Mar 21 22:54:49 2016 +0100

    Write a better format for the row-buffer allocation

diff --git a/ff2ppm.c b/ff2ppm.c
index 09eb346..265e317 100644
--- a/ff2ppm.c
+++ b/ff2ppm.c
@@ -74,17 +74,17 @@ main(int argc, char *argv[])
                fprintf(stderr, "%s: invalid height: zero\n", argv0);
                return 1;
        }
+
        if (width > SIZE_MAX / ((sizeof("RGBA") - 1) * sizeof(uint16_t))) {
                fprintf(stderr, "%s: row length integer overflow\n", argv0);
                return 1;
        }
-
        rowlen = width * (sizeof("RGBA") - 1);
        if (!(row = malloc(rowlen * sizeof(uint16_t)))) {
                fprintf(stderr, "%s: malloc: %s\n", argv0, strerror(errno));
                return 1;
        }
-       if (!(rowout = malloc(width * sizeof("RGB") - 1))) {
+       if (!(rowout = malloc(width * (sizeof("RGB") - 1) * sizeof(uint16_t)))) 
{
                fprintf(stderr, "%s: malloc: %s\n", argv0, strerror(errno));
                return 1;
        }

Reply via email to