dcraw/dcraw-CVE-2021-3624.patch

18 lines
654 B
Diff

--- dcraw/dcraw.c 2022-04-12 14:29:23.791896447 +0200
+++ dcraw/dcraw.c 2022-04-12 14:59:50.767180929 +0200
@@ -3289,7 +3289,13 @@
}
} else if (type == 4) {
free (meta_data);
- meta_data = (char *) malloc (meta_length = wide*high*3/2);
+ meta_data = NULL;
+ meta_length = wide*high*3/2;
+ if (meta_length/wide != high*3/2) {
+ fprintf(stderr, "Potential buffer overflow (meta_length %u, wide %u, high %u). Bailing out...\n", meta_length, wide, high);
+ longjmp(failure, 2);
+ }
+ meta_data = (char *) malloc (meta_length);
merror (meta_data, "foveon_load_camf()");
foveon_huff (huff);
get4();