Summary: | digikam crash when tagging files | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Geoff King <gsking1> |
Component: | Metadata-Engine | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | ahuggel, caulier.gilles |
Priority: | NOR | ||
Version: | 0.10.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 7.3.0 | |
Sentry Crash Report: | |||
Attachments: | example of file that crashes exiv2 when modifying |
Description
Geoff King
2008-12-11 03:30:39 UTC
I should note that this is with latest svn for exiv2 (Rev: 1693), and libs and digikam 0.10.0 Andreas, Look like the crash appears in EXIV2 library from trunk ... Gilles Geoff, We need an image sample to test (it's a JPEG file). Can you attach file here ? Is this problem is reproducible to write something in image with Exiv2 command line tool ? Gilles Caulier Andreas, Look like the crash appears when libkexiv2 call this method from Exiv2 : http://lxr.kde.org/source/KDE/kdegraphics/libs/libkexiv2/libkexiv2/kexiv2.cpp#420 Gilles Yes, this looks like an Exiv2 issue. Geoff, can you send me one of the pictures that has this problem and describe exactly what tags you're adding/changing? Ideally, you provide a modify command for the exiv2 command line tool to reproduce the problem. Andreas I'll get you a few samples tomorrow evening. Created attachment 29269 [details]
example of file that crashes exiv2 when modifying
One of the images that has this problem was just uploaded. See below for an example error from command line exiv2. exiv2 -M"add Iptc.Application2.Caption String Demo" test.jpg Error: Upper boundary of data for directory Sony, entry 0x9008 is out of bounds: Offset = 0x00000820, size = 200, exceeds buffer size by 76 Bytes; adjusting the size Error: Upper boundary of data for directory Sony, entry 0x9008 is out of bounds: Offset = 0x00000820, size = 200, exceeds buffer size by 76 Bytes; adjusting the size *** glibc detected *** exiv2: free(): invalid next size (fast): 0x08a261f8 *** ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6[0xb7b743f4] /lib/tls/i686/cmov/libc.so.6(cfree+0x96)[0xb7b76456] /usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb7d52031] /usr/local/lib/libexiv2.so.5(_ZN5Exiv27ExifKeyD0Ev+0x52)[0xb7e4f762] /usr/local/lib/libexiv2.so.5(_ZN5Exiv29ExifdatumD1Ev+0x46)[0xb7dfc196] /usr/local/lib/libexiv2.so.5(_ZN5Exiv210ExifParser6encodeERSt6vectorIhSaIhEEPKhjNS_9ByteOrderERKNS_8ExifDataE+0x56f)[0xb7dfe4df] /usr/local/lib/libexiv2.so.5[0xb7e10f8c] /usr/local/lib/libexiv2.so.5(_ZN5Exiv28JpegBase13writeMetadataEv+0x12e)[0xb7e1247e] exiv2[0x8057365] exiv2[0x8050f62] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7b1b685] exiv2[0x804c581] ======= Memory map: ======== 08048000-08070000 r-xp 00000000 08:01 7602353 /usr/local/bin/exiv2 08070000-08071000 r--p 00027000 08:01 7602353 /usr/local/bin/exiv2 08071000-08072000 rw-p 00028000 08:01 7602353 /usr/local/bin/exiv2 08a1f000-08a40000 rw-p 08a1f000 00:00 0 [heap] b7700000-b7721000 rw-p b7700000 00:00 0 b7721000-b7800000 ---p b7721000 00:00 0 b7881000-b7882000 rw-p b7881000 00:00 0 b7882000-b78c1000 r--p 00000000 08:01 7553614 /usr/lib/locale/en_US.utf8/LC_CTYPE b78c1000-b78c2000 r--p 00000000 08:01 7553619 /usr/lib/locale/en_US.utf8/LC_NUMERIC b78c2000-b78c3000 r--p 00000000 08:01 7553622 /usr/lib/locale/en_US.utf8/LC_TIME b78c3000-b79a4000 r--p 00000000 08:01 7553613 /usr/lib/locale/en_US.utf8/LC_COLLATE b79a4000-b7aad000 r--p 00000000 08:01 3932185 /usr/lib/locale/locale-archive b7aad000-b7aaf000 rw-p b7aad000 00:00 0 b7aaf000-b7ad3000 r-xp 00000000 08:01 7522086 /usr/lib/libexpat.so.1.5.2 b7ad3000-b7ad5000 r--p 00023000 08:01 7522086 /usr/lib/libexpat.so.1.5.2 b7ad5000-b7ad6000 rw-p 00025000 08:01 7522086 /usr/lib/libexpat.so.1.5.2 b7ad6000-b7aea000 r-xp 00000000 08:01 7522789 /usr/lib/libz.so.1.2.3.3 b7aea000-b7aec000 rw-p 00013000 08:01 7522789 /usr/lib/libz.so.1.2.3.3 b7aec000-b7b01000 r-xp 00000000 08:01 3687599 /lib/tls/i686/cmov/libpthread-2.8.90.so b7b01000-b7b02000 r--p 00014000 08:01 3687599 /lib/tls/i686/cmov/libpthread-2.8.90.so b7b02000-b7b03000 rw-p 00015000 08:01 3687599 /lib/tls/i686/cmov/libpthread-2.8.90.so b7b03000-b7b05000 rw-p b7b03000 00:00 0 b7b05000-b7c5d000 r-xp 00000000 08:01 3687573 /lib/tls/i686/cmov/libc-2.8.90.so b7c5d000-b7c5f000 r--p 00158000 08:01 3687573 /lib/tls/i686/cmov/libc-2.8.90.so b7c5f000-b7c60000 rw-p 0015a000 08:01 3687573 /lib/tls/i686/cmov/libc-2.8.90.so b7c60000-b7c63000 rw-p b7c60000 00:00 0 b7c63000-b7c70000 r-xp 00000000 08:01 3670557 /lib/libgcc_s.so.1 b7c70000-b7c71000 r--p 0000c000 08:01 3670557 /lib/libgcc_s.so.1 b7c71000-b7c72000 rw-p 0000d000 08:01 3670557 /lib/libgcc_s.so.1 b7c72000-b7c96000 r-xp 00000000 08:01 3687581 /lib/tls/i686/cmov/libm-2.8.90.so b7c96000-b7c97000 r--p 00023000 08:01 3687581 /lib/tls/i686/cmov/libm-2.8.90.so b7c97000-b7c98000 rw-p 00024000 08:01 3687581 /lib/tls/i686/cmov/libm-2.8.90.so b7c98000-b7c99000 rw-p b7c98000 00:00 0 b7c99000-b7d7c000 r-xp 00000000 08:01 7520598 /usr/lib/libstdc++.so.6.0.10 b7d7c000-b7d7d000 ---p 000e3000 08:01 7520598 /usr/lib/libstdc++.so.6.0.10 b7d7d000-b7d81000 r--p 000e3000 08:01 7520598 /usr/lib/libstdc++.so.6.0.10 b7d81000-b7d82000 rw-p 000e7000 08:01 7520598 /usr/lib/libstdc++.so.6.0.10 b7d82000-b7d88000 rw-p b7d82000 00:00 0 b7d98000-b7d99000 r--p 00000000 08:01 7553617 /usr/lib/locale/en_US.utf8/LC_MONETARY b7d99000-b7d9a000 r--p 00000000 08:01 7553623 /usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES b7d9a000-b7d9b000 r--p 00000000 08:01 7553620 /usr/lib/locale/en_US.utf8/LC_PAPER b7d9b000-b7d9c000 r--p 00000000 08:01 7553618 /usr/lib/locale/en_US.utf8/LC_NAME b7d9c000-b7d9d000 r--p 00000000 08:01 7553612 /usr/lib/locale/en_US.utf8/LC_ADDRESS b7d9d000-b7d9e000 r--p 00000000 08:01 7553621 /usr/lib/locale/en_US.utf8/LC_TELEPHONE b7d9e000-b7d9f000 r--p 00000000 08:01 7553616 /usr/lib/locale/en_US.utf8/LC_MEASUREMENT b7d9f000-b7da6000 r--s 00000000 08:01 3473651 /usr/lib/gconv/gconv-modules.cache b7da6000-b7da7000 r--p 00000000 08:01 7553615 /usr/lib/locale/en_US.utf8/LC_IDENTIFICATION b7da7000-b7f12000 r-xp 00000000 08:01 7602351 /usr/local/lib/libexiv2.so.5.1.0 b7f12000-b7f20000 r--p 0016a000 08:01 7602351 /usr/local/lib/libexiv2.so.5.1.0 b7f20000-b7f21000 rw-p 00178000 08:01 7602351 /usr/local/lib/libexiv2.so.5.1.0 b7f21000-b7f2c000 rw-p b7f21000 00:00 0 b7f2c000-b7f46000 r-xp 00000000 08:01 3670035 /lib/ld-2.8.90.so b7f46000-b7f47000 r-xp b7f46000 00:00 0 [vdso] b7f47000-b7f48000 r--p 0001a000 08:01 3670035 /lib/ld-2.8.90.so b7f48000-b7f49000 rw-p 0001b000 08:01 3670035 /lib/ld-2.8.90.so bf934000-bf949000 rw-p bffeb000 00:00 0 [stack] Aborted Andreas, What's news about this file ? Are you find the problem in Exiv2 ? Gilles I didn't have time to look into this on the weekend. So far I've only run the test file on a Windows (MinGW) box and everything looks fine, it does not crash. Will have to try on Linux and check with Valgrind at home tonight. Andreas Ok, thanks Gilles Fixed. Thanks for the test image. http://dev.robotbattle.com/cmtinfo_svn.php?r=10&v=1702 Andreas Great. Another one closed... Gilles Works Here. Thanks, Geoff Not reproducible with digiKam 7.3.0 and Exiv2 0.27.4 |