Commit d88c9394c for imagemagick.org
commit d88c9394c659fc7d6fa813f65b5070dfbf20a6c8
Author: Cristy <urban-warrior@imagemagick.org>
Date: Sun Nov 1 09:35:23 2026 -0500
https://github.com/ImageMagick/ImageMagick/issues/9079
diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c
index e18b42a18..f2cc93051 100644
--- a/MagickCore/decorate.c
+++ b/MagickCore/decorate.c
@@ -208,13 +208,16 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info,
assert(frame_info != (FrameInfo *) NULL);
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- if ((frame_info->outer_bevel < 0) || (frame_info->inner_bevel < 0))
+ if ((frame_info->outer_bevel < 0) || (frame_info->inner_bevel < 0) ||
+ (frame_info->x < 0) || (frame_info->y < 0))
ThrowImageException(OptionError,"FrameIsLessThanImageSize");
bevel_width=(size_t) (frame_info->outer_bevel+frame_info->inner_bevel);
- x_offset=(ssize_t) frame_info->width-frame_info->x-(ssize_t) bevel_width;
- y_offset=(ssize_t) frame_info->height-frame_info->y-(ssize_t) bevel_width;
- if ((x_offset < (ssize_t) image->columns) ||
- (y_offset < (ssize_t) image->rows))
+ if (((size_t) frame_info->x < bevel_width) ||
+ ((size_t) frame_info->y < bevel_width) ||
+ (frame_info->width < image->columns) ||
+ (frame_info->height < image->rows) ||
+ ((size_t) frame_info->width < (image->columns+frame_info->x+bevel_width)) ||
+ ((size_t) frame_info->height < (image->rows+frame_info->y+bevel_width)))
ThrowImageException(OptionError,"FrameIsLessThanImageSize");
/*
Initialize framed image attributes.