diff options
Diffstat (limited to 'tests/tiff/tiff_invalid_read.c')
-rw-r--r-- | tests/tiff/tiff_invalid_read.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests/tiff/tiff_invalid_read.c b/tests/tiff/tiff_invalid_read.c index bed5389..7acf7cf 100644 --- a/tests/tiff/tiff_invalid_read.c +++ b/tests/tiff/tiff_invalid_read.c @@ -25,13 +25,15 @@ int main() static void check_file(char *basename) { gdImagePtr im; - char *buffer; + char *buffer = NULL; size_t size; size = read_test_file(&buffer, basename); im = gdImageCreateFromTiffPtr(size, (void *) buffer); gdTestAssert(im == NULL); - free(buffer); + if (buffer != NULL) { + free(buffer); + } } @@ -43,18 +45,20 @@ static size_t read_test_file(char **buffer, char *basename) filename = gdTestFilePath2("tiff", basename); fp = fopen(filename, "rb"); - gdTestAssert(fp != NULL); + if (gdTestAssert(fp != NULL)) goto fail3; - fseek(fp, 0, SEEK_END); + if (fseek(fp, 0, SEEK_END) != 0) goto fail2; exp_size = ftell(fp); - fseek(fp, 0, SEEK_SET); + if (fseek(fp, 0, SEEK_SET) != 0) goto fail2; *buffer = malloc(exp_size); - gdTestAssert(*buffer != NULL); + if (gdTestAssert(*buffer != NULL)) goto fail2; act_size = fread(*buffer, sizeof(**buffer), exp_size, fp); gdTestAssert(act_size == exp_size); +fail2: fclose(fp); +fail3: free(filename); return act_size; |