From fa70a4eb4befb7d485b58b54f281410e4cf73047 Mon Sep 17 00:00:00 2001 From: Brett Foster Date: Sat, 11 May 2019 13:43:08 -0700 Subject: [PATCH] fix double free --- src/ptouch-print.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/ptouch-print.c b/src/ptouch-print.c index 440b20e..3525911 100644 --- a/src/ptouch-print.c +++ b/src/ptouch-print.c @@ -453,6 +453,7 @@ int main(int argc, char *argv[]) im=image_load(argv[++i]); out=img_append(out, im); gdImageDestroy(im); + im = NULL; } else if (strcmp(&argv[i][1], "-text") == 0) { for (lines=0; (lines < MAX_LINES) && (i < argc); lines++) { if ((i+1 >= argc) || (argv[i+1][0] == '-')) { @@ -468,11 +469,13 @@ int main(int argc, char *argv[]) } out=img_append(out, im); gdImageDestroy(im); + im = NULL; } } else if (strcmp(&argv[i][1], "-cutmark") == 0) { im=img_cutmark(tape_width); out=img_append(out, im); gdImageDestroy(im); + im = NULL; } else { usage(argv[0]); } @@ -489,7 +492,9 @@ int main(int argc, char *argv[]) } gdImageDestroy(out); } - gdImageDestroy(im); + if (im != NULL) { + gdImageDestroy(im); + } ptouch_close(ptdev); libusb_exit(NULL); return 0;