Blame tests/gdimagecreate/bug00340.c

Packit ed3af9
/**
Packit ed3af9
 * Regression test for <https://github.com/libgd/libgd/issues/340>
Packit ed3af9
 *
Packit ed3af9
 * We're testing that trying to create an oversized image fails early,
Packit ed3af9
 * triggering an appropriate warning.
Packit ed3af9
 */
Packit ed3af9

Packit ed3af9

Packit ed3af9
#include <string.h>
Packit ed3af9
#include "gd.h"
Packit ed3af9
#include "gd_errors.h"
Packit ed3af9
#include "gdtest.h"
Packit ed3af9

Packit ed3af9

Packit ed3af9
#define MSG "product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully\n"
Packit ed3af9

Packit ed3af9

Packit ed3af9
void error_handler(int priority, const char *format, ...)
Packit ed3af9
{
Packit ed3af9
    gdTestAssert(priority == GD_WARNING);
Packit ed3af9
    gdTestAssert(!strcmp(format, MSG));
Packit ed3af9
}
Packit ed3af9

Packit ed3af9

Packit ed3af9
int main()
Packit ed3af9
{
Packit ed3af9
    gdImagePtr im;
Packit ed3af9

Packit ed3af9
    im = gdImageCreate(64970, 65111);
Packit ed3af9
    gdTestAssert(im == NULL);
Packit ed3af9

Packit ed3af9
    return gdNumFailures();
Packit ed3af9
}