libcupsfilters and libppd Second Generation - Forth Beta Release!
Continuing the packaging for Debian, Ubuntu, and Red Hat distributions more bugs got found and fixed.
First, Zdenek Dohnal from Red Hat has run all the components of the new generation of cups-filters through Coverity and found several bugs: Memory leaks, files not closed, possible string overflows, … He fixed all these bugs in the upstream code. This assures reliability and security of all the new components, especially if being part of permanently running daemons. Thanks a lot, Zdenek!
During the selection process for contributors for the Google Summer of Code 2023 we give some assignments to the candidates, usually reported bugs, but also other code-related work items which occur at OpenPrinting. This way we got some bugs fixed, from users reporting that their printer does not work in driverless mode or something wrong or nothing comes out as the printout.
Especially with one candidate, having gotten assigned a bug report about the PostScript Printer Application not preventing the use of malformed, user-supplied PPD files, we realized that we did not transfer CUPS’ valuable command line tool cupstestppd
into libppd. This the candidate has done yet, as the library function ppdTest()
, easily callable from a PPD-retrofitting Printer Application.
libcupsfilters got updated to work with the latest version of QPDF (11) as building it showed a lot of warnings about the use of deprecated functions in QPDF. Now it should be ready for the upcoming QPDF 12.
libcupsfilters
- Do not free
cf_image_t
data structure in_cfImageZoomDelete()
(cups-filters issue #507) The library-internal_cfImageZoom...()
API does not create thecf_image_t
data structure, so it should not free it, to avoid double-free crashes. This made thecfFilterImageToRaster()
filter function (imagetoraster
CUPS filter) crash. cfImageOpenFP()
: Removed leftoverHAVE_LIBZ
conditionals In the 3rd beta we have removed the dependency on libz from the build system as there is no explicit dependency on it in libcupsfilters. Having forgotten to removeHAVE_LIBZ
from the conditionals incfImageOpenFP()
PNG images were rendered as blank pages. See cups-filters issue #465.- Compatibility with QPDF 11 and later
- Replaced deprecated
PointerHolder
withshared_ptr
(PR #13) cfFilterPDFToPDF()
: Replaced deprecated QPDF function namereplaceOrRemoveKey
byreplaceKey
.- Set
CXXFLAGS="-DPOINTERHOLDER_TRANSITION=0"
to silence QPDF warnings.
- Replaced deprecated
INSTALL
: Explain dependencies (PR #10)
libppd
- Transfer CUPS’
cupstestppd
utility toppdTest()
library function The valuable tool got forgotten in the first place, now it is available asppdTest()
library function andtestppdfile
command line utility. The command line utility only gets installed with./configure
called with--enable-testppdfile
argument. - In auto-generated PPDs do not set RGB default on mono printers (CUPS Issue #614)
When a PPD for a driverless printer is generated by the
ppdCreatePPDFromIPP()
function and the get-printer-attributes IPP response gives “print-color-mode-default=auto” the PPD’s default setting for “ColorModel” is always “RGB”, even on monochrome printers, which makes printing fail on most devices. Now we ignore the “print-color-mode-default” if set to “auto”. - ppdLoadAttributes(): Added NULL check for missing PPD PageSize default Some PPDs, even “everywhere” PPDs generated by CUPS for a driverless IPP printer do not have a valid default value for the default page size, like “Unknown”. Added a NULL check to avoid a crash by such PPD files.
testppd
: String got freed too early In this test program run bymake check
a string was used after already gotten freed. Discovered via a compiler warning, but program could have actually crashed.
General
- Coverity check done by Zdenek Dohnal for the inclusion of libppd in Fedora and Red Hat. Zdenek has fixed all the issues: Missing
free()
, files not closed, potential string overflows, … Thanks a lot! configure.ac
: Change deprecatedAC_PROG_LIBTOOL
forLT_INIT
(PR #12)
Packages
- libcupsfilters: More Details and Download, Discussion
- libppd: More Details and Download, Discussion
Comments