From 63eb5cb3a861d504df347d67a5c6bb4227459c14 Mon Sep 17 00:00:00 2001 From: ffsup2 Date: Tue, 8 Feb 2011 22:56:06 +0100 Subject: [PATCH] Bugfix: dcraw crashes when loading some images with MMAP on. (file offset pointer is -1) --- rtengine/dcraw.cc | 2 +- rtengine/dcraw.patch | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index dc66af38c..c750d7427 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -4947,7 +4947,7 @@ int CLASS parse_tiff_ifd (int base) case 513: /* JpegIFOffset */ case 61447: tiff_ifd[ifd].offset = get4()+base; - if (!tiff_ifd[ifd].bps) { +/*RT*/if (!tiff_ifd[ifd].bps && tiff_ifd[ifd].offset>=0) { fseek (ifp, tiff_ifd[ifd].offset, SEEK_SET); if (ljpeg_start (&jh, 1)) { tiff_ifd[ifd].comp = 6; diff --git a/rtengine/dcraw.patch b/rtengine/dcraw.patch index 88de4973c..96c4fb513 100644 --- a/rtengine/dcraw.patch +++ b/rtengine/dcraw.patch @@ -1,5 +1,5 @@ ---- dcraw.c Wed Feb 02 23:18:25 2011 -+++ dcraw.cc Thu Feb 03 00:52:38 2011 +--- H:/rawtherapee_3.0/rtengine/dcraw.c Wed Feb 02 23:18:25 2011 ++++ H:/rawtherapee_3.0/rtengine/dcraw.cc Tue Feb 08 22:50:40 2011 @@ -1,5 +1,14 @@ +/*RT*/#include +/*RT*/#include @@ -289,6 +289,19 @@ cam_mul[(tag-17)*2] = get2() / 256.0; break; case 23: +@@ -4931,11 +4945,11 @@ + load_flags = 0x2008; + case 273: /* StripOffset */ + case 513: /* JpegIFOffset */ + case 61447: + tiff_ifd[ifd].offset = get4()+base; +- if (!tiff_ifd[ifd].bps) { ++/*RT*/if (!tiff_ifd[ifd].bps && tiff_ifd[ifd].offset>=0) { + fseek (ifp, tiff_ifd[ifd].offset, SEEK_SET); + if (ljpeg_start (&jh, 1)) { + tiff_ifd[ifd].comp = 6; + tiff_ifd[ifd].width = jh.wide; + tiff_ifd[ifd].height = jh.high; @@ -5272,16 +5286,17 @@ if (sony_length && (buf = (unsigned *) malloc(sony_length))) { fseek (ifp, sony_offset, SEEK_SET);