diff -U3 -r LibRaw-0.14.8.orig/Changelog.rus LibRaw-0.14.8/Changelog.rus --- LibRaw-0.14.8.orig/Changelog.rus 2013-05-17 14:54:17.000000000 -0500 +++ LibRaw-0.14.8/Changelog.rus 2013-05-31 05:31:45.970607271 -0500 @@ -1,4 +1,8 @@ -2013-05-21 Alex Tutubalin +2013-05-31 Alex Tutubalin + * Исправлена ошибка при обработке поврежденных полноцветных + файлов (sRAW, Foveon) + +2013-05-21 Alex Tutubalin * Исправлена ошибка в коде функции sony_decrypt(), приводившая к неверному чтению камерного баланса белого на камерах Sony если LibRaw была собрана gcc 4.8 diff -U3 -r LibRaw-0.14.8.orig/Changelog.txt LibRaw-0.14.8/Changelog.txt --- LibRaw-0.14.8.orig/Changelog.txt 2013-05-17 14:54:17.000000000 -0500 +++ LibRaw-0.14.8/Changelog.txt 2013-05-31 05:31:45.970607271 -0500 @@ -1,3 +1,7 @@ +2013-05-31 Alex Tutubalin + * Fixed double call to free() on broken legacy-layout images + (backport from 0.15.x) + 2013-05-21 Alex Tutubalin * Fixed undefined behaviour in sony_decrypt() function. This bug causes incorrect camera WB read for Sony cameras. diff -U3 -r LibRaw-0.14.8.orig/src/libraw_cxx.cpp LibRaw-0.14.8/src/libraw_cxx.cpp --- LibRaw-0.14.8.orig/src/libraw_cxx.cpp 2013-05-17 14:54:17.000000000 -0500 +++ LibRaw-0.14.8/src/libraw_cxx.cpp 2013-05-31 05:31:51.402607149 -0500 @@ -796,8 +796,8 @@ S.iheight= S.height; IO.shrink = 0; // allocate image as temporary buffer, size - imgdata.rawdata.raw_alloc = calloc(S.iwidth*S.iheight,sizeof(*imgdata.image)); - imgdata.image = (ushort (*)[4]) imgdata.rawdata.raw_alloc; + imgdata.rawdata.raw_alloc = 0; + imgdata.image = (ushort (*)[4]) calloc(S.iwidth*S.iheight,sizeof(*imgdata.image)); } @@ -807,8 +807,8 @@ // recover saved if( decoder_info.decoder_flags & LIBRAW_DECODER_LEGACY) { - imgdata.image = 0; - imgdata.rawdata.color_image = (ushort (*)[4]) imgdata.rawdata.raw_alloc; + imgdata.rawdata.raw_alloc = imgdata.rawdata.color_image = imgdata.image; + imgdata.image = 0; } // calculate channel maximum