450f33d
diff -urNp old/dcraw.c new/dcraw.c
450f33d
--- old/dcraw.c	2018-06-14 12:38:10.519964843 +0200
450f33d
+++ new/dcraw.c	2018-06-14 13:31:46.304679761 +0200
450f33d
@@ -1248,6 +1248,10 @@ void CLASS nikon_load_raw()
450f33d
 
450f33d
 void CLASS nikon_yuv_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   int row, col, yuv[4], rgb[3], b, c;
450f33d
   UINT64 bitbuf=0;
450f33d
 
450f33d
@@ -1889,6 +1893,10 @@ void CLASS sinar_4shot_load_raw()
450f33d
     unpacked_load_raw();
450f33d
     return;
450f33d
   }
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  else if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   pixel = (ushort *) calloc (raw_width, sizeof *pixel);
450f33d
   merror (pixel, "sinar_4shot_load_raw()");
450f33d
   for (shot=0; shot < 4; shot++) {
450f33d
@@ -2188,6 +2196,11 @@ void CLASS quicktake_100_load_raw()
450f33d
 
450f33d
 void CLASS kodak_radc_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  // All kodak radc images are 768x512
450f33d
+  if(width>768 || raw_width>768 || height > 512 || raw_height>512 )
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   static const char src[] = {
450f33d
     1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8,
450f33d
     1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8,
450f33d
@@ -2348,6 +2361,10 @@ void CLASS gamma_curve (double pwr, doub
450f33d
 
450f33d
 void CLASS lossy_dng_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   struct jpeg_decompress_struct cinfo;
450f33d
   struct jpeg_error_mgr jerr;
450f33d
   JSAMPARRAY buf;
450f33d
@@ -2444,6 +2461,10 @@ void CLASS eight_bit_load_raw()
450f33d
 
450f33d
 void CLASS kodak_c330_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   uchar *pixel;
450f33d
   int row, col, y, cb, cr, rgb[3], c;
450f33d
 
450f33d
@@ -2469,6 +2490,10 @@ void CLASS kodak_c330_load_raw()
450f33d
 
450f33d
 void CLASS kodak_c603_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   uchar *pixel;
450f33d
   int row, col, y, cb, cr, rgb[3], c;
450f33d
 
450f33d
@@ -2596,6 +2621,10 @@ void CLASS kodak_65000_load_raw()
450f33d
 
450f33d
 void CLASS kodak_ycbcr_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   short buf[384], *bp;
450f33d
   int row, col, len, c, i, j, k, y[2][2], cb, cr, rgb[3];
450f33d
   ushort *ip;
450f33d
@@ -2624,6 +2653,10 @@ void CLASS kodak_ycbcr_load_raw()
450f33d
 
450f33d
 void CLASS kodak_rgb_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   short buf[768], *bp;
450f33d
   int row, col, len, c, i, rgb[3];
450f33d
   ushort *ip=image[0];
450f33d
@@ -2640,6 +2673,10 @@ void CLASS kodak_rgb_load_raw()
450f33d
 
450f33d
 void CLASS kodak_thumb_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   int row, col;
450f33d
   colors = thumb_misc >> 5;
450f33d
   for (row=0; row < height; row++)
450f33d
@@ -3109,6 +3146,10 @@ void CLASS foveon_thumb()
450f33d
 
450f33d
 void CLASS foveon_sd_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   struct decode *dindex;
450f33d
   short diff[1024];
450f33d
   unsigned bitbuf=0;
450f33d
@@ -3156,6 +3197,10 @@ void CLASS foveon_huff (ushort *huff)
450f33d
 
450f33d
 void CLASS foveon_dp_load_raw()
450f33d
 {
450f33d
+#ifdef LIBRAW_LIBRARY_BUILD
450f33d
+  if(!image)
450f33d
+    throw LIBRAW_EXCEPTION_IO_CORRUPT;
450f33d
+#endif
450f33d
   unsigned c, roff[4], row, col, diff;
450f33d
   ushort huff[512], vpred[2][2], hpred[2];
450f33d