summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/tests/gdimagecreate/bug00340.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests/gdimagecreate/bug00340.c')
-rw-r--r--Build/source/libs/gd/libgd-src/tests/gdimagecreate/bug00340.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/Build/source/libs/gd/libgd-src/tests/gdimagecreate/bug00340.c b/Build/source/libs/gd/libgd-src/tests/gdimagecreate/bug00340.c
new file mode 100644
index 00000000000..14129ab8660
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/gdimagecreate/bug00340.c
@@ -0,0 +1,33 @@
+/**
+ * Regression test for <https://github.com/libgd/libgd/issues/340>
+ *
+ * We're testing that trying to create an oversized image fails early,
+ * triggering an appropriate warning.
+ */
+
+
+#include <string.h>
+#include "gd.h"
+#include "gd_errors.h"
+#include "gdtest.h"
+
+
+#define MSG "product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully\n"
+
+
+void error_handler(int priority, const char *format, ...)
+{
+ gdTestAssert(priority == GD_WARNING);
+ gdTestAssert(!strcmp(format, MSG));
+}
+
+
+int main()
+{
+ gdImagePtr im;
+
+ im = gdImageCreate(64970, 65111);
+ gdTestAssert(im == NULL);
+
+ return gdNumFailures();
+}