summaryrefslogtreecommitdiff
path: root/tests/tiff/tiff_invalid_read.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tiff/tiff_invalid_read.c')
-rw-r--r--tests/tiff/tiff_invalid_read.c16
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;