summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/libgd-src/tests/png/bug00193.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/libgd-src/tests/png/bug00193.c')
-rw-r--r--Build/source/libs/gd/libgd-src/tests/png/bug00193.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/Build/source/libs/gd/libgd-src/tests/png/bug00193.c b/Build/source/libs/gd/libgd-src/tests/png/bug00193.c
new file mode 100644
index 00000000000..67acf545f67
--- /dev/null
+++ b/Build/source/libs/gd/libgd-src/tests/png/bug00193.c
@@ -0,0 +1,43 @@
+#include <stdlib.h>
+#include "gd.h"
+#include "gdhelpers.h"
+#include "gdtest.h"
+
+static gdImagePtr im;
+
+#define TERMINATE(ctx, status) do { \
+ free(ctx); \
+ gdImageDestroy(im); \
+ exit(status); \
+ } while (0)
+
+static void
+failPutC(gdIOCtxPtr ctx, int c)
+{
+ (void)c;
+ TERMINATE(ctx, 1);
+}
+
+static int
+failPutBuf(gdIOCtxPtr ctx, const void * data, int size)
+{
+ (void)data;
+ (void)size;
+ TERMINATE(ctx, 1);
+ return -1;
+}
+
+int main()
+{
+ gdIOCtxPtr ctx;
+
+ gdSetErrorMethod(gdSilence);
+
+ im = gdImageCreate(100, 100);
+ ctx = (gdIOCtxPtr)malloc(sizeof(gdIOCtx));
+ ctx->putC = failPutC;
+ ctx->putBuf = failPutBuf;
+ gdImagePngCtx(im, ctx);
+ TERMINATE(ctx, 0);
+ return 0;
+}