[Digikam-devel] [CRASH] writing a png crashs digikam-SVN

Thorsten Schnebeck thorsten.schnebeck at gmx.net
Thu Dec 14 20:04:25 GMT 2006


Hi,

I have a problem with current SVN:

I display a JPG-image in IE, use the save as dialog to save this image as png. 
This crashs digikam :-(
I do not get 
[...]
kio (KTrader): query for ThumbCreator : returning 13 offers
kio (KTrader): query for ThumbCreator : returning 13 offers
kfile (kdelibs): Figure out an extension:
kfile (kdelibs):        getExtension (*.png,*.PNG)
kfile (kdelibs):                try: '*.png'
kfile (kdelibs):        setMimeFilter-style: pattern ext='.png'
kdecore (KAcceleratorManager): KAcceleratorManager::manage
kdecore (KAcceleratorManager): findAccelerators
kdecore (KAcceleratorManager): KAcceleratorManager::manage
kdecore (KAcceleratorManager): findAccelerators
kfile (kdelibs): slotOK
kio (KIOJob): stat file:///home/schnebeck/EOS/einTest/IMG_4876.png
kio (KIOJob): error 11 /home/schnebeck/EOS/einTest/IMG_4876.png
kfile (kdelibs): slotStatResult
kfile (kdelibs): ::urls()
kfile (kdelibs): ::urls()
kfile (kdelibs): KRecentDocument::add for 
file:///home/schnebeck/EOS/einTest/IMG_4876.png
kio (KDirLister): [virtual void KDirLister::stop()]
kio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 
0x20a9f310
digikam: Saving to :/home/schnebeck/EOS/einTest/BdFfxa.digikamtempfile.tmp 
(png)
digikam: (800x533) JPEG image preview size: 31895 bytes
digikam: Writing Raw profile: type=exif, length=6327
==16944==
==16944== Thread 2:
==16944== Conditional jump or move depends on uninitialised value(s)
==16944==    at 0x1B90A4C5: strlen (mac_replace_strmem.c:189)
==16944==    by 0x1BC01E44: 
Digikam::PNGLoader::writeRawProfile(png_struct_def*, png_info_struct*, char*, 
char*, unsigned long) (in /usr/kde/3.5/lib/libdigikam.so.0.0.0)
digikam: Writing Raw profile: type=iptc, length=31940
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15C0: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6320 is 0 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15C3: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6321 is 1 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15D0: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6322 is 2 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15D8: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6323 is 3 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15E0: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6324 is 4 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15E8: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6325 is 5 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15F0: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6326 is 6 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A15F8: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6327 is 7 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1600: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6328 is 8 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1608: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE6329 is 9 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1610: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE632A is 10 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1618: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE632B is 11 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1620: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE632C is 12 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1628: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE632D is 13 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1630: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE632E is 14 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944==
==16944== Invalid read of size 1
==16944==    at 0x1D4A1638: adler32 (in /lib/libz.so.1.2.3)
==16944==  Address 0x20CE632F is 15 bytes after a block of size 2032 alloc'd
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3384DD: png_malloc_default 
(in /usr/lib/libpng12.so.0.13.0)
==16944== Stack overflow in thread 2: can't grow stack to 0x20CE7000
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = digikam path = <unknown> pid = 16944
kio (KDirLister): -KDirLister
kio (KDirLister): [virtual void KDirLister::stop()]
kio (KDirListerCache): [void KDirListerCache::stop(KDirLister*)] lister: 
0x20a9f310
kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*)] 
0x20a9f310
kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const 
KURL&, bool)] 0x20a9f310 _url: file:///home/schnebeck/EOS/einTest
kio (KDirListerCache): [void KDirListerCache::forgetDirs(KDirLister*, const 
KURL&, bool)] 0x20a9f310 item moved into cache: 
file:///home/schnebeck/EOS/einTest
ICE default IO error handler doing an exit(), pid = 16944, errno = 9
kio (KDirWatch): KDirWatchPrivate::removeEntry 
for '/home/schnebeck/EOS/einTest' sub_entry: (nil)
kio (KDirWatch): removeEntry: 
unwatched /home/schnebeck/EOS/einTest /home/schnebeck/EOS/einTest
kio (KDirListerCache): -KDirListerCache
==16944==
==16944== ERROR SUMMARY: 3342 errors from 27 contexts (suppressed: 7 from 1)
==16944== malloc/free: in use at exit: 63457601 bytes in 351298 blocks.
==16944== malloc/free: 2729509 allocs, 2378211 frees, 265248832 bytes 
allocated.
==16944== For counts of detected errors, rerun with: -v
==16944== searching for pointers to 351298 not-freed blocks.
==16944== checked 82747112 bytes.
==16944==
==16944==
==16944== 288 bytes in 2 blocks are possibly lost in loss record 1013 of 1866
==16944==    at 0x1B909C70: calloc (vg_replace_malloc.c:175)
==16944==    by 0x1B8F45C8: allocate_dtv (in /lib/ld-2.4.so)
==16944==    by 0x1B8F468B: _dl_allocate_tls (in /lib/ld-2.4.so)
==16944==    by 0x1D4829FF: pthread_create@@GLIBC_2.1 
(in /lib/libpthread-2.4.so)
==16944==    by 0x1BCFDB87: (within /usr/lib/libsqlite3.so.0.8.6)
==16944==
==16944==
==16944== 312 (72 direct, 240 indirect) bytes in 2 blocks are definitely lost 
in loss record 1026 of 1866
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D73A639: (within /lib/libc-2.4.so)
==16944==    by 0x1D73AD36: __nss_database_lookup (in /lib/libc-2.4.so)
==16944==    by 0x1DBE7079: ???
==16944==    by 0x1DBE7D99: ???
==16944==    by 0x1D6F8C74: getpwuid_r (in /lib/libc-2.4.so)
==16944==    by 0x1D6F8669: getpwuid (in /lib/libc-2.4.so)
==16944==    by 0x1CB7B23C: (within /usr/qt/3/lib/libqt-mt.so.3.3.6)
==16944==    by 0x1CB7BB21: (within /usr/qt/3/lib/libqt-mt.so.3.3.6)
==16944==    by 0x1D355E27: _SmcProcessMessage (in /usr/lib/libSM.so.6.0.0)
==16944==
==16944==
==16944== 80 bytes in 2 blocks are definitely lost in loss record 1037 of 1866
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1B8EE33E: _dl_new_object (in /lib/ld-2.4.so)
==16944==    by 0x1B8EA357: _dl_map_object_from_fd (in /lib/ld-2.4.so)
==16944==    by 0x1B8EC150: _dl_map_object (in /lib/ld-2.4.so)
==16944==    by 0x1B8EFD45: openaux (in /lib/ld-2.4.so)
==16944==    by 0x1B8F1541: _dl_catch_error (in /lib/ld-2.4.so)
==16944==    by 0x1B8EFF3C: _dl_map_object_deps (in /lib/ld-2.4.so)
==16944==    by 0x1B8F543E: dl_open_worker (in /lib/ld-2.4.so)
==16944==    by 0x1B8F1541: _dl_catch_error (in /lib/ld-2.4.so)
==16944==    by 0x1B8F4F08: _dl_open (in /lib/ld-2.4.so)
==16944==    by 0x1D562E3C: (within /lib/libdl-2.4.so)
==16944==    by 0x1B8F1541: _dl_catch_error (in /lib/ld-2.4.so)
==16944==
==16944==
==16944== 188 (128 direct, 60 indirect) bytes in 1 blocks are definitely lost 
in loss record 1125 of 1866
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D179F8B: (within /usr/lib/libfontconfig.so.1.1.0)
==16944==
==16944==
==16944== 216 bytes in 1 blocks are definitely lost in loss record 1189 of 
1866
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D3ED209: _XimOpenIM (in /usr/lib/libX11.so.6.2.0)
==16944==
==16944==
==16944== 584 (52 direct, 532 indirect) bytes in 1 blocks are definitely lost 
in loss record 1439 of 1866
==16944==    at 0x1B909441: operator new(unsigned) (vg_replace_malloc.c:132)
==16944==    by 0x1C290741: KServiceTypeFactory::createEntry(int) 
(kservicetypefactory.cpp:270)
==16944==
==16944==
==16944== 19556 (6912 direct, 12644 indirect) bytes in 18 blocks are 
definitely lost in loss record 1808 of 1866
==16944==    at 0x1B909D6A: realloc (vg_replace_malloc.c:196)
==16944==    by 0x1D179EA3: (within /usr/lib/libfontconfig.so.1.1.0)
==16944==
==16944==
==16944== 12612 bytes in 3 blocks are definitely lost in loss record 1814 of 
1866
==16944==    at 0x1B909D6A: realloc (vg_replace_malloc.c:196)
==16944==    by 0x1D197C42: (within /usr/lib/libfreetype.so.6.3.8)
==16944==
==16944==
==16944== 12643 bytes in 4 blocks are definitely lost in loss record 1815 of 
1866
==16944==    at 0x1B9092C5: malloc (vg_replace_malloc.c:130)
==16944==    by 0x1D197BBA: (within /usr/lib/libfreetype.so.6.3.8)
==16944==
==16944== LEAK SUMMARY:
==16944==    definitely lost: 32715 bytes in 32 blocks.
==16944==    indirectly lost: 13476 bytes in 675 blocks.
==16944==      possibly lost: 288 bytes in 2 blocks.
==16944==    still reachable: 63411122 bytes in 350589 blocks.
==16944==         suppressed: 0 bytes in 0 blocks.
==16944== Reachable blocks (those to which a pointer was found) are not shown.
==16944== To see them, rerun with: --show-reachable=yes

Can someone second?

 digikam --version
Qt: 3.3.6
KDE: 3.5.5
digiKam: 0.9.0-rc2

exiv2-config --version
0.12

Bye

  Thorsten




More information about the Digikam-devel mailing list