From 9a132cb5db1d135f10bee976ddf1861236c42f48 Mon Sep 17 00:00:00 2001 From: AZero13 Date: Mon, 3 Nov 2025 19:05:26 -0500 Subject: [PATCH] Free, close, and unlink files when failure happens Remove freeing the free list. --- backend/ipp.c | 6 ++++++ backend/socket.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/backend/ipp.c b/backend/ipp.c index 8311a1cf97..4a6159da71 100644 --- a/backend/ipp.c +++ b/backend/ipp.c @@ -1400,12 +1400,18 @@ main(int argc, /* I - Number of command-line args */ if ((compatsize = write(fd, buffer, (size_t)bytes)) < 0) { perror("DEBUG: Unable to write temporary file"); + if (tmpfilename[0]) + unlink(tmpfilename); return (CUPS_BACKEND_FAILED); } if ((bytes = backendRunLoop(-1, fd, snmp_fd, &(addrlist->addr), 0, 0, backendNetworkSideCB)) < 0) + { + if (tmpfilename[0]) + unlink(tmpfilename); return (CUPS_BACKEND_FAILED); + } compatsize += bytes; diff --git a/backend/socket.c b/backend/socket.c index 2186a2ba1a..5cc30a5b44 100644 --- a/backend/socket.c +++ b/backend/socket.c @@ -313,6 +313,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ sleep(5); + if (snmp_fd >= 0) + _cupsSNMPClose(snmp_fd); + if (print_fd != 0) + close(print_fd); return (CUPS_BACKEND_FAILED); } @@ -324,6 +328,10 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ { _cupsLangPrintFilter(stderr, "ERROR", _("The printer is not responding.")); + if (snmp_fd >= 0) + _cupsSNMPClose(snmp_fd); + if (print_fd != 0) + close(print_fd); return (CUPS_BACKEND_FAILED); } @@ -429,8 +437,6 @@ main(int argc, /* I - Number of command-line arguments (6 or 7) */ close(device_fd); - httpAddrFreeList(addrlist); - /* * Close the input file and return... */