Closed tex closed 1 year ago
Backtrace:
#0 0x00007f6a712d3030 in raise () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
(gdb) bt
#0 0x00007f6a712d3030 in raise () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#1 0x00007f6a712bd526 in abort () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#2 0x00007f6a71312de8 in ?? () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#3 0x00007f6a7131a59a in ?? () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#4 0x00007f6a7131a9ec in ?? () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#5 0x00007f6a7131f5a3 in free () from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#6 0x00007f6a715d5f7d in _cupsImageZoomDelete ()
from /gnu/store/28yslw852djci2l76m9zv6p1dnmxhwv5-cups-filters-1.28.16/lib/libcupsfilters.so.1
#7 0x0000000000404a9b in ?? ()
#8 0x00007f6a712be7dd in __libc_start_main ()
from /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib/libc.so.6
#9 0x0000000000406e3a in ?? ()
Ha! Removing
*cupsFilter2: "application/vnd.cups-raster image/pwg-raster 0 -"
fixes the issue. I can print now. test image printed correctly.
But still, the ppd was created automatically by cups, I would expect it creates ppd that works...
Is that cupsFilter2 important?
Thanks a lot @sourabh1952 for your investigations on this bug!
With this I fixed it in libcupsfilters (2.x) now, commit OpenPrinting/libcupsfilters@381636a :
Do not free cf_image_t data structure in _cfImageZoomDelete()
The library-internal _cfImageZoom...() API handles zooming of images
with a data structure of type cf_izoom_t. This data structure contains
a pointer to the original image, in cf_image_t format.
The _cfImageZoomNew() funtion gets a pointer to an existing cf_image_t
structure as parameter, the image to work on. It stores the pointer in
its cf_izoom_t structure. It never creates a cf_image_t image.
Because the _cfImageZoom...() API never creates a cf_image_t
structure, it should also never free it. Therefore it is wrong that
_cfImageZoomDelete() calls cfImageClose() which is the function to
free a cf_image_t structure after use.
This was leading to double freeing, as the functions which create a
cf_image_t structure always free it when done.
I'm sorry for this regression :( it's a bad habit to think all structs are allocated in *New() functions and don't check which are actually allocated as new and which are only referenced to already allocated pointer. I hope everything is alright now.
Describe the bug imagetoraster crashes on signal 6 when printing to Xerox printer using IPP: munmap_chunk(): invalid pointer
To Reproduce Steps to reproduce the behavior:
The .ppd file:
Expected behavior No crash. Image printed.
System Information: