Blame tests/jpeg/jpeg_ptr_double_free.c

Packit Service 176cb2
/**
Packit Service 176cb2
 * Test that failure to convert to JPEG returns NULL
Packit Service 176cb2
 *
Packit Service 176cb2
 * We are creating an image, set its width to zero, and pass this image to
Packit Service 176cb2
 * `gdImageJpegPtr()` which is supposed to fail, and as such should return NULL.
Packit Service 176cb2
 *
Packit Service 176cb2
 * See also <https://github.com/libgd/libgd/issues/381>
Packit Service 176cb2
 */
Packit Service 176cb2
Packit Service 176cb2
Packit Service 176cb2
#include "gd.h"
Packit Service 176cb2
#include "gdtest.h"
Packit Service 176cb2
Packit Service 176cb2
Packit Service 176cb2
int main()
Packit Service 176cb2
{
Packit Service 176cb2
    gdImagePtr src, dst;
Packit Service 176cb2
    int size;
Packit Service 176cb2
Packit Service 176cb2
    src = gdImageCreateTrueColor(1, 10);
Packit Service 176cb2
    gdTestAssert(src != NULL);
Packit Service 176cb2
Packit Service 176cb2
    src->sx = 0; /* this hack forces gdImageJpegPtr() to fail */
Packit Service 176cb2
Packit Service 176cb2
    dst = gdImageJpegPtr(src, &size, 0);
Packit Service 176cb2
    gdTestAssert(dst == NULL);
Packit Service 176cb2
Packit Service 176cb2
    gdImageDestroy(src);
Packit Service 176cb2
Packit Service 176cb2
    return gdNumFailures();
Packit Service 176cb2
}