Skip to content

Commit

Permalink
Use ExceptionInfo instead of letting libraw print to stderr.
Browse files Browse the repository at this point in the history
  • Loading branch information
dlemstra committed Apr 30, 2021
1 parent 3df3254 commit 8462661
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion coders/dng.c
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,22 @@ static void SetDNGProperties(Image *image,const libraw_data_t *raw_info)
(void) SetImageProperty(image,"dng:focal.length.in.35mm.format",property);
#endif
}

static void LibRawDataError(void *data,const char *magick_unused(file),
const int offset)
{
magick_unreferenced(file);
/* Value below zero is an EOF and an exception will be raised instead */
if (offset >= 0)
{
ExceptionInfo
*exception;

exception=(ExceptionInfo *) data;
(void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageWarning,"Data corrupted at","`%d'",offset);
}
}
#endif

static Image *ReadDNGImage(const ImageInfo *image_info,ExceptionInfo *exception)
Expand Down Expand Up @@ -260,14 +276,16 @@ static Image *ReadDNGImage(const ImageInfo *image_info,ExceptionInfo *exception)
*p;

errcode=0;
raw_info=libraw_init(0);
raw_info=libraw_init(LIBRAW_OPIONS_NO_MEMERR_CALLBACK |
LIBRAW_OPIONS_NO_DATAERR_CALLBACK);
if (raw_info == (libraw_data_t *) NULL)
{
(void) ThrowMagickException(exception,GetMagickModule(),CoderError,
libraw_strerror(errcode),"`%s'",image->filename);
libraw_close(raw_info);
return(DestroyImageList(image));
}
libraw_set_dataerror_handler(raw_info,LibRawDataError,exception);
raw_info->params.use_camera_wb=IsStringTrue(GetImageOption(image_info,
"dng:use-camera-wb"));
#if defined(MAGICKCORE_WINDOWS_SUPPORT) && defined(_MSC_VER) && (_MSC_VER > 1310)
Expand Down

0 comments on commit 8462661

Please sign in to comment.