cups-filters/0001-Coverity-fixes.patch
2023-02-20 16:44:38 +01:00

147 lines
4.5 KiB
Diff

From 9ca26d04f170626a66a23cde3eac29dac7e89260 Mon Sep 17 00:00:00 2001
From: Zdenek Dohnal <zdohnal@redhat.com>
Date: Thu, 16 Feb 2023 15:49:10 +0100
Subject: [PATCH] Coverity fixes 2
---
filter/foomatic-rip/foomaticrip.c | 4 +++-
filter/foomatic-rip/options.c | 7 ++-----
filter/foomatic-rip/postscript.c | 11 +++++++----
filter/rastertoescpx.c | 3 +++
utils/driverless.c | 3 ++-
5 files changed, 17 insertions(+), 11 deletions(-)
diff --git a/filter/foomatic-rip/foomaticrip.c b/filter/foomatic-rip/foomaticrip.c
index b6abe4d33..036d6138b 100644
--- a/filter/foomatic-rip/foomaticrip.c
+++ b/filter/foomatic-rip/foomaticrip.c
@@ -639,7 +639,7 @@ int
print_file(const char *filename,
int convert)
{
- FILE *file;
+ FILE *file = NULL;
char buf[8192];
char tmpfilename[PATH_MAX] = "";
int type;
@@ -664,6 +664,8 @@ print_file(const char *filename,
n = fread_or_die(buf, 1, sizeof(buf) - 1, file);
if (!n) {
_log("Input is empty, outputting empty file.\n");
+ if (strcasecmp(filename, "<STDIN>"))
+ fclose(file);
return (1);
}
buf[n] = '\0';
diff --git a/filter/foomatic-rip/options.c b/filter/foomatic-rip/options.c
index ae5bac2ed..bad833bc1 100644
--- a/filter/foomatic-rip/options.c
+++ b/filter/foomatic-rip/options.c
@@ -1255,8 +1255,6 @@ option_has_choice(option_t *opt,
const char *
option_text(option_t *opt)
{
- if (isempty(opt->text))
- return (opt->text);
return (opt->text);
}
@@ -2263,9 +2261,8 @@ ppd_supports_pdf()
// line
if (startswith(cmd, "gs"))
{
- strncpy(cmd_pdf, cmd, 4096);
- if (strlen(cmd) > 4095)
- cmd_pdf[4095] = '\0';
+ strncpy(cmd_pdf, cmd, 4095);
+ cmd_pdf[4095] = '\0';
return (1);
}
diff --git a/filter/foomatic-rip/postscript.c b/filter/foomatic-rip/postscript.c
index b09c5b8ff..e6fbd2ac0 100644
--- a/filter/foomatic-rip/postscript.c
+++ b/filter/foomatic-rip/postscript.c
@@ -178,17 +178,14 @@ print_ps(FILE *file,
const char *filename)
{
stream_t stream;
- char gscommand[65536];
int pagefound = 0;
FILE *in, *out;
pid_t pid;
- char buf[4096];
struct pollfd pfd;
size_t bytes, bytes_sent;
char *pos;
int pres;
- dstr_t *line = create_dstr();
- dstr_t *data_read = create_dstr();
+ dstr_t *line = NULL, *data_read = NULL;
// Define input data stream for reading
@@ -228,6 +225,11 @@ print_ps(FILE *file,
// lines, we only need the boolean answer whether there are pages or
// not
//
+
+ char buf[4096];
+ char gscommand[65536];
+ line = create_dstr();
+ data_read = create_dstr();
snprintf(gscommand, 65536, "%s -q -dNOPAUSE -dBATCH -sDEVICE=bbox -dDEVICEWIDTHPOINTS=1 -dDEVICEHEIGHTPOINTS=1 -_ 2>&1",
CUPS_GHOSTSCRIPT);
@@ -313,6 +315,7 @@ print_ps(FILE *file,
_log("No pages left, outputting empty file.\n");
free_dstr(data_read);
+ free_dstr(line);
}
return (1);
diff --git a/filter/rastertoescpx.c b/filter/rastertoescpx.c
index ccd599ea5..f060db0b3 100644
--- a/filter/rastertoescpx.c
+++ b/filter/rastertoescpx.c
@@ -335,6 +335,9 @@ StartPage(ppd_file_t *ppd, // I - PPD file
DitherLuts[6] = ppdLutLoad(ppd, colormodel, header->MediaType,
resolution, "LightBlack", logfunc, ld);
break;
+ default : // ERROR
+ fputs("ERROR: Unexpected number of channels\n", stderr);
+ exit(1);
}
for (plane = 0; plane < PrinterPlanes; plane ++)
diff --git a/utils/driverless.c b/utils/driverless.c
index 8af843333..7c67cbe19 100644
--- a/utils/driverless.c
+++ b/utils/driverless.c
@@ -495,19 +495,20 @@ list_printers (int mode, int reg_type_no, int isFax)
if (fp) {
while ((bytes = cupsFileGetLine(fp, buffer, sizeof(buffer))) > 0 ||
(bytes < 0 && (errno == EAGAIN || errno == EINTR))) {
- ippfind_output = (char *)malloc(MAX_OUTPUT_LEN*(sizeof(char)));
ptr = buffer;
while (ptr && !isalnum(*ptr & 255)) ptr ++;
if ((!strncasecmp(ptr, "ipps", 4) && ptr[4] == '\t')) {
ptr += 4;
*ptr = '\0';
ptr ++;
+ ippfind_output = (char *)malloc(MAX_OUTPUT_LEN*(sizeof(char)));
snprintf(ippfind_output, MAX_OUTPUT_LEN, "%s", ptr);
cupsArrayAdd(service_uri_list_ipps, ippfind_output);
} else if ((!strncasecmp(ptr, "ipp", 3) && ptr[3] == '\t')) {
ptr += 3;
*ptr = '\0';
ptr ++;
+ ippfind_output = (char *)malloc(MAX_OUTPUT_LEN*(sizeof(char)));
snprintf(ippfind_output, MAX_OUTPUT_LEN, "%s", ptr);
cupsArrayAdd(service_uri_list_ipp, ippfind_output);
} else
--
2.39.2