[Debian-astro-maintainers] Bug#777705: fitscut: FTBFS on mips* and sparc - double free or corruption

James Cowgill james410 at cowgill.org.uk
Wed Feb 11 17:25:42 UTC 2015


Source: fitscut
Version: 1.4.4-1
Severity: important

Hi,

fitscut FTBFS on mips, mipsel, mips64el and sparc with the error:

> ./fitscut -vv --png --autoscale=98 --all --asinh-scale ./test.fits > _test.png
> Checking input file: ./test.fits
> 	Examining FITS channel 0...
> 	Allocating space for 128 x 128 array
> 	Extracting ./test.fits[1:128,1:128]...
> Scanning file for scaling parameters...
> Scanning channel 0...  min: 0.000000 max: 90.509666
> Autoscaling channel 0 by histogram 2.0000% - 98.0000%
> Scaling image (asinh)...
> Autoscaling channel 0 by histogram 2.0000% - 98.0000%
> *** Error in `./fitscut': double free or corruption (out): 0x004d4028 ***
> /bin/bash: line 1: 28874 Aborted                 ./fitscut -vv --png --autoscale=98 --all --asinh-scale ./test.fits > _test.png
> make[1]: *** [check] Error 134

Running the test program with valgrind on mipsel gives:

> ==3400== Memcheck, a memory error detector
> ==3400== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
> ==3400== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
> ==3400== Command: ./fitscut -vv --png --autoscale=98 --all --asinh-scale ./test.fits
> ==3400== 
> Checking input file: ./test.fits
>         Examining FITS channel 0...
>         Allocating space for 128 x 128 array
>         Extracting ./test.fits[1:128,1:128]...
> Scanning file for scaling parameters...
> Scanning channel 0...  min: 0.000000 max: 90.509666
> Autoscaling channel 0 by histogram 2.0000% - 98.0000%
> Scaling image (asinh)...
> Autoscaling channel 0 by histogram 2.0000% - 98.0000%
> ==3400== Invalid read of size 4
> ==3400==    at 0x409280: compute_histogram (histogram.c:90)
> ==3400==    by 0x40995C: autoscale_channel (image_scale.c:79)
> ==3400==    by 0x40A044: autoscale_image (image_scale.c:115)
> ==3400==    by 0x406784: scale_image (fitscut.c:332)
> ==3400==    by 0x406C4C: treat_input (fitscut.c:425)
> ==3400==    by 0x408F04: main (fitscut.c:958)
> ==3400==  Address 0x4e8570c is 4 bytes before a block of size 40,004 alloc'd
> ==3400==    at 0x484B580: malloc (vg_replace_malloc.c:296)
> ==3400==    by 0x408F78: compute_histogram (histogram.c:67)
> ==3400==    by 0x40995C: autoscale_channel (image_scale.c:79)
> ==3400==    by 0x40A044: autoscale_image (image_scale.c:115)
> ==3400==    by 0x406784: scale_image (fitscut.c:332)
> ==3400==    by 0x406C4C: treat_input (fitscut.c:425)
> ==3400==    by 0x408F04: main (fitscut.c:958)
> ==3400== 
> ==3400== Invalid write of size 4
> ==3400==    at 0x4092A4: compute_histogram (histogram.c:90)
> ==3400==    by 0x40995C: autoscale_channel (image_scale.c:79)
> ==3400==    by 0x40A044: autoscale_image (image_scale.c:115)
> ==3400==    by 0x406784: scale_image (fitscut.c:332)
> ==3400==    by 0x406C4C: treat_input (fitscut.c:425)
> ==3400==    by 0x408F04: main (fitscut.c:958)
> ==3400==  Address 0x4e8570c is 4 bytes before a block of size 40,004 alloc'd
> ==3400==    at 0x484B580: malloc (vg_replace_malloc.c:296)
> ==3400==    by 0x408F78: compute_histogram (histogram.c:67)
> ==3400==    by 0x40995C: autoscale_channel (image_scale.c:79)
> ==3400==    by 0x40A044: autoscale_image (image_scale.c:115)
> ==3400==    by 0x406784: scale_image (fitscut.c:332)
> ==3400==    by 0x406C4C: treat_input (fitscut.c:425)
> ==3400==    by 0x408F04: main (fitscut.c:958)
> ==3400== 
> Creating PNG file...
>         data min: 0.138900 max: 0.648700 clip: 255.000000 scale: 500.196167
> finished writing PNG image
> ==3400== 
> ==3400== HEAP SUMMARY:
> ==3400==     in use at exit: 60 bytes in 3 blocks
> ==3400==   total heap usage: 62 allocs, 59 frees, 562,460 bytes allocated
> ==3400== 
> ==3400== LEAK SUMMARY:
> ==3400==    definitely lost: 60 bytes in 3 blocks
> ==3400==    indirectly lost: 0 bytes in 0 blocks
> ==3400==      possibly lost: 0 bytes in 0 blocks
> ==3400==    still reachable: 0 bytes in 0 blocks
> ==3400==         suppressed: 0 bytes in 0 blocks
> ==3400== Rerun with --leak-check=full to see details of leaked memory
> ==3400== 
> ==3400== For counts of detected and suppressed errors, rerun with: -v
> ==3400== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 2 from 2)

The mips64el log for reference (you probably won't need it):
http://mipsdebian.imgtec.com/debian/logs/f/fitscut/fitscut_1.4.4-1_mips64el-20150210-2223.build.gz

Thanks,
James



More information about the Debian-astro-maintainers mailing list