mirror of
https://git.code.sf.net/p/zint/code
synced 2026-01-26 13:25:58 +00:00
fixed resource leaks for invalid colours
This commit is contained in:
20
backend/ps.c
20
backend/ps.c
@@ -55,16 +55,6 @@ int ps_plot(struct zint_symbol *symbol)
|
|||||||
comp_offset = 0;
|
comp_offset = 0;
|
||||||
addon_text_posn = 0.0;
|
addon_text_posn = 0.0;
|
||||||
|
|
||||||
if((symbol->output_options & BARCODE_STDOUT) != 0) {
|
|
||||||
feps = stdout;
|
|
||||||
} else {
|
|
||||||
feps = fopen(symbol->outfile, "w");
|
|
||||||
}
|
|
||||||
if(feps == NULL) {
|
|
||||||
strcpy(symbol->errtxt, "Could not open output file");
|
|
||||||
return ZERROR_FILE_ACCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* sort out colour options */
|
/* sort out colour options */
|
||||||
to_upper((unsigned char*)symbol->fgcolour);
|
to_upper((unsigned char*)symbol->fgcolour);
|
||||||
to_upper((unsigned char*)symbol->bgcolour);
|
to_upper((unsigned char*)symbol->bgcolour);
|
||||||
@@ -87,6 +77,16 @@ int ps_plot(struct zint_symbol *symbol)
|
|||||||
strcpy(symbol->errtxt, "Malformed background colour target");
|
strcpy(symbol->errtxt, "Malformed background colour target");
|
||||||
return ZERROR_INVALID_OPTION;
|
return ZERROR_INVALID_OPTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((symbol->output_options & BARCODE_STDOUT) != 0) {
|
||||||
|
feps = stdout;
|
||||||
|
} else {
|
||||||
|
feps = fopen(symbol->outfile, "w");
|
||||||
|
}
|
||||||
|
if(feps == NULL) {
|
||||||
|
strcpy(symbol->errtxt, "Could not open output file");
|
||||||
|
return ZERROR_FILE_ACCESS;
|
||||||
|
}
|
||||||
locale = setlocale(LC_ALL, "C");
|
locale = setlocale(LC_ALL, "C");
|
||||||
|
|
||||||
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
|
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
|
||||||
|
|||||||
@@ -51,15 +51,6 @@ int svg_plot(struct zint_symbol *symbol)
|
|||||||
comp_offset = 0;
|
comp_offset = 0;
|
||||||
addon_text_posn = 0.0;
|
addon_text_posn = 0.0;
|
||||||
|
|
||||||
if((symbol->output_options & BARCODE_STDOUT) != 0) {
|
|
||||||
fsvg = stdout;
|
|
||||||
} else {
|
|
||||||
fsvg = fopen(symbol->outfile, "w");
|
|
||||||
}
|
|
||||||
if(fsvg == NULL) {
|
|
||||||
strcpy(symbol->errtxt, "Could not open output file");
|
|
||||||
return ZERROR_FILE_ACCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* sort out colour options */
|
/* sort out colour options */
|
||||||
to_upper((unsigned char*)symbol->fgcolour);
|
to_upper((unsigned char*)symbol->fgcolour);
|
||||||
@@ -83,6 +74,17 @@ int svg_plot(struct zint_symbol *symbol)
|
|||||||
strcpy(symbol->errtxt, "Malformed background colour target");
|
strcpy(symbol->errtxt, "Malformed background colour target");
|
||||||
return ZERROR_INVALID_OPTION;
|
return ZERROR_INVALID_OPTION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if((symbol->output_options & BARCODE_STDOUT) != 0) {
|
||||||
|
fsvg = stdout;
|
||||||
|
} else {
|
||||||
|
fsvg = fopen(symbol->outfile, "w");
|
||||||
|
}
|
||||||
|
if(fsvg == NULL) {
|
||||||
|
strcpy(symbol->errtxt, "Could not open output file");
|
||||||
|
return ZERROR_FILE_ACCESS;
|
||||||
|
}
|
||||||
|
|
||||||
locale = setlocale(LC_ALL, "C");
|
locale = setlocale(LC_ALL, "C");
|
||||||
|
|
||||||
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
|
fgred = (16 * ctoi(symbol->fgcolour[0])) + ctoi(symbol->fgcolour[1]);
|
||||||
|
|||||||
Reference in New Issue
Block a user