diff --git a/src/lib/image.h b/src/lib/image.h index da82576..0175e94 100644 --- a/src/lib/image.h +++ b/src/lib/image.h @@ -184,8 +184,11 @@ __hidden void __imlib_SaveImage(ImlibImage *im, const char *file, #define SET_FLAG(flags, f) ((flags) |= (f)) #define UNSET_FLAG(flags, f) ((flags) &= (~f)) +/* The maximum pixmap dimension is 65535. */ +/* However, for now, use 46340 (46340^2 < 2^31) to avoid buffer overflow issues. */ +# define X_MAX_DIM 46340 + #define IMAGE_DIMENSIONS_OK(w, h) \ - ( ((w) > 0) && ((h) > 0) && \ - ((unsigned long long)(w) * (unsigned long long)(h) <= (1ULL << 29) - 1) ) + ( ((w) > 0) && ((h) > 0) && ((w) < X_MAX_DIM) && ((h) < X_MAX_DIM) ) #endif diff --git a/src/lib/rend.c b/src/lib/rend.c index 2d7934b..44be783 100644 --- a/src/lib/rend.c +++ b/src/lib/rend.c @@ -16,10 +16,6 @@ #include "scale.h" #include "ximage.h" -/* The maximum pixmap dimension is 65535. */ -/* However, for now, use 46340 (46340^2 < 2^31) to avoid buffer overflow issues. */ -#define X_MAX_DIM 46340 - /* size of the lines per segment we scale / render at a time */ #define LINESIZE 16