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 |
}
|