Perhaps also useful:
dagon:/tmp# valgrind /usr/lib/cups/filter/hpcups 1 debian '' 1 '' <print_step_2.raster >print_step_3.hpcups ==2475946== Memcheck, a memory error detector ==2475946== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==2475946== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info ==2475946== Command: /usr/lib/cups/filter/hpcups 1 debian 1 ==2475946== STATE: -marker-supply-low-warning PAGE: 1 1 PAGE: 2 1 ==2475946== Syscall param read(buf) points to unaddressable byte(s) ==2475946== at 0x4A1D04E: read (read.c:26) ==2475946== by 0x4948F4C: UnknownInlinedFun (unistd.h:44) ==2475946== by 0x4948F4C: cups_read_fd (raster-stubs.c:323) ==2475946== by 0x494827F: cups_raster_io (raster-stream.c:1372) ==2475946== by 0x494827F: _cupsRasterReadPixels (raster-stream.c:782) ==2475946== by 0x1126E7: HPCupsFilter::processRasterData(_cups_raster_s*) (HPCupsFilter.cpp:745) ==2475946== by 0x112DBE: HPCupsFilter::StartPrintJob(int, char**) (HPCupsFilter.cpp:584) ==2475946== by 0x4C41CC9: (below main) (libc-start.c:308) ==2475946== Address 0x5adcf44 is 0 bytes after a block of size 11,140 alloc'd ==2475946== at 0x483950F: operator new[](unsigned long) (vg_replace_malloc.c:431) ==2475946== by 0x111BE8: HPCupsFilter::startPage(cups_page_header2_s*) (HPCupsFilter.cpp:500) ==2475946== by 0x112792: HPCupsFilter::processRasterData(_cups_raster_s*) (HPCupsFilter.cpp:655) ==2475946== by 0x112DBE: HPCupsFilter::StartPrintJob(int, char**) (HPCupsFilter.cpp:584) ==2475946== by 0x4C41CC9: (below main) (libc-start.c:308) ==2475946== ==2475946== ==2475946== HEAP SUMMARY: ==2475946== in use at exit: 18,040 bytes in 5 blocks ==2475946== total heap usage: 2,179 allocs, 2,174 frees, 939,079 bytes allocated ==2475946== ==2475946== LEAK SUMMARY: ==2475946== definitely lost: 11,108 bytes in 2 blocks ==2475946== indirectly lost: 0 bytes in 0 blocks ==2475946== possibly lost: 0 bytes in 0 blocks ==2475946== still reachable: 6,932 bytes in 3 blocks ==2475946== suppressed: 0 bytes in 0 blocks ==2475946== Rerun with --leak-check=full to see details of leaked memory ==2475946== ==2475946== For lists of detected and suppressed errors, rerun with: -s ==2475946== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Perhaps also useful:
dagon:/tmp# valgrind /usr/lib/ cups/filter/ hpcups 1 debian '' 1 '' <print_ step_2. raster >print_ step_3. hpcups cups/filter/ hpcups 1 debian 1 supply- low-warning stubs.c: 323) stream. c:1372) Pixels (raster- stream. c:782) :processRasterD ata(_cups_ raster_ s*) (HPCupsFilter. cpp:745) :StartPrintJob( int, char**) (HPCupsFilter. cpp:584) malloc. c:431) :startPage( cups_page_ header2_ s*) (HPCupsFilter. cpp:500) :processRasterD ata(_cups_ raster_ s*) (HPCupsFilter. cpp:655) :StartPrintJob( int, char**) (HPCupsFilter. cpp:584)
==2475946== Memcheck, a memory error detector
==2475946== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2475946== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==2475946== Command: /usr/lib/
==2475946==
STATE: -marker-
PAGE: 1 1
PAGE: 2 1
==2475946== Syscall param read(buf) points to unaddressable byte(s)
==2475946== at 0x4A1D04E: read (read.c:26)
==2475946== by 0x4948F4C: UnknownInlinedFun (unistd.h:44)
==2475946== by 0x4948F4C: cups_read_fd (raster-
==2475946== by 0x494827F: cups_raster_io (raster-
==2475946== by 0x494827F: _cupsRasterRead
==2475946== by 0x1126E7: HPCupsFilter:
==2475946== by 0x112DBE: HPCupsFilter:
==2475946== by 0x4C41CC9: (below main) (libc-start.c:308)
==2475946== Address 0x5adcf44 is 0 bytes after a block of size 11,140 alloc'd
==2475946== at 0x483950F: operator new[](unsigned long) (vg_replace_
==2475946== by 0x111BE8: HPCupsFilter:
==2475946== by 0x112792: HPCupsFilter:
==2475946== by 0x112DBE: HPCupsFilter:
==2475946== by 0x4C41CC9: (below main) (libc-start.c:308)
==2475946==
==2475946==
==2475946== HEAP SUMMARY:
==2475946== in use at exit: 18,040 bytes in 5 blocks
==2475946== total heap usage: 2,179 allocs, 2,174 frees, 939,079 bytes allocated
==2475946==
==2475946== LEAK SUMMARY:
==2475946== definitely lost: 11,108 bytes in 2 blocks
==2475946== indirectly lost: 0 bytes in 0 blocks
==2475946== possibly lost: 0 bytes in 0 blocks
==2475946== still reachable: 6,932 bytes in 3 blocks
==2475946== suppressed: 0 bytes in 0 blocks
==2475946== Rerun with --leak-check=full to see details of leaked memory
==2475946==
==2475946== For lists of detected and suppressed errors, rerun with: -s
==2475946== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)