diff options
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.c | 43 |
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; +} |