medcon recompiled without optimization and with debugging symbols: CFLAGS="-g -O0" DEB_BUILD_OPTIONS="debug, noopt, nostrip" dpkg-buildpackage -uc -us -rfakeroot
Running on Debian Unstable AMD64. Program received signal SIGSEGV, Segmentation fault. 0x00002aea4eac2d45 in DecodeFirstRow (dcPtr=0x2aea4ec09de0, curRowBuf=0x2aea4ec09ec0) at huffd.c:472 472 curRowBuf[col][curComp]=d+curRowBuf[col-1][curComp]; (gdb) bt #0 0x00002aea4eac2d45 in DecodeFirstRow (dcPtr=0x2aea4ec09de0, curRowBuf=0x2aea4ec09ec0) at huffd.c:472 #1 0x00002aea4eac2edc in DecodeImage (dcPtr=0x2aea4ec09de0, image=0x7fff5c29e030, depth=16) at huffd.c:536 #2 0x00002aea4eac21c2 in JPEGLosslessDecodeImage (inFile=0x516010, image16=0x2aea4f245010, depth=16, length=5321384) at decomp.c:90 #3 0x00002aea4eac1fe8 in mdc_dicom_decomp_ljpg (fp=0x516010, image16=0x2aea4f245010, length=5321384, depth=16) at decomp.c:177 #4 0x00002aea4eabdafb in mdc_dicom_decompress (s=0x2aea4ec09d60, e=0x2aea4ec09d00) at basic.c:1035 #5 0x00002aea4eabe6aa in dicom_single () at single.c:288 #6 0x00002aea4eac019f in dicom_read (file=0x7fff5c29e310 "20061119171007906", image=0x7fff5c29e248, images=0x7fff5c29e244, parametric=1) at image.c:83 #7 0x00002aea4eab96a9 in mdc_dicom_read (fi=0x7fff5c29e2f0, image=0x7fff5c29e248, number=0x7fff5c29e244) at m-dicm.c:2146 #8 0x00002aea4eab2684 in MdcReadDICM (fi=0x7fff5c29e2f0) at m-dicm.c:485 #9 0x00002aea4ea70bf5 in MdcReadFile (fi=0x7fff5c29e2f0, filenr=1, ReadFunc=0) at m-files.c:192 #10 0x0000000000401475 in main (argc=3, argv=0x7fff5c29ec98) at medcon.c:96 (gdb) print d $1 = 13 (gdb) print curComp $2 = 0 (gdb) print col $3 = 2048 Notice the very round and nice value of "col"? Looks suspicious.... How big is the curRowBuf anyway? ./libs/ljpg/huffd.c -- DecodeImage(): curRowBuf = mcuROW1; ./libs/ljpg/jpegutil.c: static char mcuROW1Memory[1024 * sizeof(MCU)]; ./libs/ljpg/mcu.h: typedef unsigned short ComponentType; /* the type of image components */ typedef ComponentType *MCU; /* MCU - array of samples */ test.c tell me that sizeof(unsigned short) is 2, so curRowBuf is 2048. Should the row be dynamic length instead of "1024 * sizeof(MCU)" ? Should col never reach that high value? -- Regards, Andreas Henriksson -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]