Remove dimension checks - farbfeld - suckless image format with conversion tools
 (HTM) git clone git://git.suckless.org/farbfeld
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 96faf20b1bcef354e6b1fd03a26c286070c52e74
 (DIR) parent d8796e33f347b92a6526a1f3e6da8f5ddae7391b
 (HTM) Author: FRIGN <dev@frign.de>
       Date:   Sun, 10 Apr 2016 22:54:42 +0200
       
       Remove dimension checks
       
       This may come as a surprise, but I'd like the libraries to handle
       these cases.
       Maybe some day libpng supports 0x0 images, so why impose artificial
       limits here?
       Same with ppm.
       
       For me, an ideal data converter loses as little information as possible.
       In mixed cases (dimensions 0xn, where n > 0) we could print a warning,
       but here, 2 principles come at play:
               - GIGO (garbage in, garbage out)
               - no information loss if possible
       Given the code later on won't try to access the malloc(0) region, we
       are also all safe.
       
       Diffstat:
         M ff2jpg.c                            |      10 ++--------
         M ff2ppm.c                            |      10 ++--------
       
       2 files changed, 4 insertions(+), 16 deletions(-)
       ---
 (DIR) diff --git a/ff2jpg.c b/ff2jpg.c
       @@ -87,14 +87,8 @@ main(int argc, char *argv[])
                        fprintf(stderr, "%s: invalid magic value\n", argv0);
                        return 1;
                }
       -        if (!(width = ntohl(hdr[2]))) {
       -                fprintf(stderr, "%s: invalid width: zero\n", argv0);
       -                return 1;
       -        }
       -        if (!(height = ntohl(hdr[3]))) {
       -                fprintf(stderr, "%s: invalid height: zero\n", argv0);
       -                return 1;
       -        }
       +        width = ntohl(hdr[2]);
       +        height = ntohl(hdr[3]);
        
                if (width > SIZE_MAX / ((sizeof("RGBA") - 1) * sizeof(uint16_t))) {
                        fprintf(stderr, "%s: row length integer overflow\n", argv0);
 (DIR) diff --git a/ff2ppm.c b/ff2ppm.c
       @@ -67,14 +67,8 @@ main(int argc, char *argv[])
                        fprintf(stderr, "%s: invalid magic value\n", argv0);
                        return 1;
                }
       -        if (!(width = ntohl(hdr[2]))) {
       -                fprintf(stderr, "%s: invalid width: zero\n", argv0);
       -                return 1;
       -        }
       -        if (!(height = ntohl(hdr[3]))) {
       -                fprintf(stderr, "%s: invalid height: zero\n", argv0);
       -                return 1;
       -        }
       +        width = ntohl(hdr[2]);
       +        height = ntohl(hdr[3]);
        
                if (width > SIZE_MAX / ((sizeof("RGBA") - 1) * sizeof(uint16_t))) {
                        fprintf(stderr, "%s: row length integer overflow\n", argv0);