Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.1:Update
GraphicsMagick
GraphicsMagick-CVE-2019-19950.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File GraphicsMagick-CVE-2019-19950.patch of Package GraphicsMagick
# HG changeset patch # User Bob Friesenhahn <bfriesen@GraphicsMagick.org> # Date 1557593192 18000 # Node ID 44ab7f6c20b440157d50242943b5b0e3b3857014 # Parent bc99af93614da8c8dd08ae407828758a64798666 ThrowException(), ThrowLoggedException(): Handle the case where some passed character strings refer to existing exception character strings. Index: GraphicsMagick-1.3.29/magick/error.c =================================================================== --- GraphicsMagick-1.3.29.orig/magick/error.c 2017-12-09 21:02:47.000000000 +0100 +++ GraphicsMagick-1.3.29/magick/error.c 2020-01-03 12:39:05.746683560 +0100 @@ -96,28 +96,32 @@ MagickExport void CatchException(const E { assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickSignature); - if (exception->severity == UndefinedException) - return; - errno=exception->error_number; /* Shabby work-around for parameter limits */ - if ((exception->severity >= WarningException) && - (exception->severity < ErrorException)) - { - MagickWarning2(exception->severity,exception->reason, - exception->description); - return; - } - if ((exception->severity >= ErrorException) && - (exception->severity < FatalErrorException)) - { - MagickError2(exception->severity,exception->reason,exception->description); - return; - } - if (exception->severity >= FatalErrorException) + + do { - MagickFatalError2(exception->severity,exception->reason, - exception->description); - return; - } + if (exception->severity == UndefinedException) + break; + errno=exception->error_number; /* Shabby work-around for parameter limits */ + if ((exception->severity >= WarningException) && + (exception->severity < ErrorException)) + { + MagickWarning2(exception->severity,exception->reason, + exception->description); + break; + } + if ((exception->severity >= ErrorException) && + (exception->severity < FatalErrorException)) + { + MagickError2(exception->severity,exception->reason,exception->description); + break; + } + if (exception->severity >= FatalErrorException) + { + MagickFatalError2(exception->severity,exception->reason, + exception->description); + break; + } + } while(0); } /* @@ -150,6 +154,7 @@ MagickExport void CopyException(Exceptio assert(copy != (ExceptionInfo *) NULL); assert(copy->signature == MagickSignature); assert(original != (ExceptionInfo *) NULL); + assert(copy != original); assert(original->signature == MagickSignature); copy->severity=original->severity; MagickFreeMemory(copy->reason); @@ -856,14 +861,21 @@ MagickExport void ThrowException(Excepti assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickSignature); exception->severity=(ExceptionType) severity; - MagickFreeMemory(exception->reason); - if (reason) - exception->reason= - AcquireString(GetLocaleExceptionMessage(severity,reason)); - MagickFreeMemory(exception->description); - if (description) - exception->description= - AcquireString(GetLocaleExceptionMessage(severity,description)); + { + char *new_reason=NULL; + if (reason) + new_reason=AcquireString(GetLocaleExceptionMessage(severity,reason)); + MagickFreeMemory(exception->reason); + exception->reason=new_reason; + } + { + char *new_description=NULL; + if (description) + new_description= + AcquireString(GetLocaleExceptionMessage(severity,description)); + MagickFreeMemory(exception->description); + exception->description=new_description; + } exception->error_number=errno; MagickFreeMemory(exception->module); MagickFreeMemory(exception->function); @@ -943,21 +955,36 @@ MagickExport void ThrowLoggedException(E return; } exception->severity=(ExceptionType) severity; - MagickFreeMemory(exception->reason); - if (reason) - exception->reason= - AcquireString(GetLocaleExceptionMessage(severity,reason)); - MagickFreeMemory(exception->description); - if (description) - exception->description= - AcquireString(GetLocaleExceptionMessage(severity,description)); + { + char *new_reason = NULL; + if (reason) + new_reason=AcquireString(GetLocaleExceptionMessage(severity,reason)); + MagickFreeMemory(exception->reason); + exception->reason=new_reason; + } + { + char *new_description = NULL; + if (description) + new_description=AcquireString(GetLocaleExceptionMessage(severity,description)); + MagickFreeMemory(exception->description); + exception->description=new_description; + } exception->error_number=errno; - MagickFreeMemory(exception->module); - if (module) - exception->module=AcquireString(module); - MagickFreeMemory(exception->function); - if (function) - exception->function=AcquireString(function); + { + char *new_module = NULL; + if (module) + new_module=AcquireString(module); + MagickFreeMemory(exception->module); + exception->module=new_module; + } + + { + char *new_function = NULL; + if (function) + new_function=AcquireString(function); + MagickFreeMemory(exception->function); + exception->function=new_function; + } exception->line=line; if (exception->reason) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor