summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFRIGN <dev@frign.de>2016-04-10 22:54:42 +0200
committerFRIGN <dev@frign.de>2016-04-10 22:54:42 +0200
commit96faf20b1bcef354e6b1fd03a26c286070c52e74 (patch)
tree86957f580956d931654b73d5e41fb1d12235ca8a
parentd8796e33f347b92a6526a1f3e6da8f5ddae7391b (diff)
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.
-rw-r--r--ff2jpg.c10
-rw-r--r--ff2ppm.c10
2 files changed, 4 insertions, 16 deletions
diff --git a/ff2jpg.c b/ff2jpg.c
index d489774..3da35e2 100644
--- 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);
diff --git a/ff2ppm.c b/ff2ppm.c
index 83b059e..880fa5b 100644
--- 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);