Package: libexempi3 Version: 2.1.1-1 Severity: important Tags: upstream One way to reproduce this bug is to try to use Nautilus to view the file properties some GIF files. Please see also Nautilus bug 667964 [1] (solved as affecting libexempi and not Nautilus) where example GIFs are attached. [1]: https://bugzilla.gnome.org/show_bug.cgi?id=667964
The GIF files provided by the reporter are GIF87a and have XMP data, which is apparently not supported [2]. [2]: http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/xmp/pdfs/XMPSpecificationPart3.pdf (page 16/80). That may be leading the functions in 'XMPFiles/FormatSupport/GIF_Support.cpp' to report a need for more space than what is actually needed to process the XMP header (the stack trace seems to show that the problem is in a call to 'assign'). As XMP is not supported for the GIF87a standard, I'd suggest removing support for it altogether, I'm no expert in the topic though and cannot tell the consequences for the library users. That could be easily achieved in GIF_Support::ReadHeader, however if one uses something like 'convert' with an affected GIF7a to obtain a GIF9a file, the resulting file can still trigger the bug (see attached GIF). Since my system's architecture is amd64 and the reporter at Nautilus' BTS too (judging from the stack trace posted there) but the developer seems to be on a i686 architecture (judging from the version of his exempi package '2.1.1-2.fc15.i686'), I'd guess wildly that the problem is not related to the distribution as suggested by the Nautilus Maintainer but rather to the system architecture, however I have no way of checking if the problem is experienced on x86 systems running Debian. Thank you. -- Stack trace Thread 1 (Thread 0x7ffa88f13980 (LWP 5120)): #0 0x00007ffa84d5b903 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffa80b32608 in std::string::_M_replace_aux(unsigned long, unsigned long, unsigned long, char) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #2 0x00007ffa8579ffca in assign (__c=32 ' ', __n=<optimized out>, this=0x2ae3170) at /usr/include/c++/4.6/bits/basic_string.h:1135 #3 GIF_MetaHandler::CacheFileData (this=0x2ae3140) at GIF_Handler.cpp:102 #4 0x00007ffa85795d0a in XMPFiles::OpenFile (this=0x2afda60, clientPath=0x2afcb10 "$PATH_TO_FILE/exempi.gif", format=39296180, openFlags=<optimized out>) at XMPFiles.cpp:1058 #5 0x00007ffa85792b26 in WXMPFiles_OpenFile_1 (xmpObjRef=0x2afda60, filePath=0x2afcb10 "/home/ahamann/Desktop/exempi.gif", format=538976288, openFlags=0, wResult=0x7ffff1c82dd0) at WXMPFiles.cpp:160 ---Type <return> to continue, or q <return> to quit--- #6 0x00007ffa8575fb98 in TXMPFiles<std::string>::OpenFile ( this=<optimized out>, filePath=<optimized out>, format=<optimized out>, openFlags=<optimized out>) at ../public/include/client-glue/TXMPFiles.incl_cpp:239 #7 0x00007ffa8575fccc in TXMPFiles<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >::TXMPFiles (this=0x2afdff0, filePath=0x2afcb10 "$PATH_TO_FILE/exempi.gif", format=538976288, openFlags=0) at ../public/include/client-glue/TXMPFiles.incl_cpp:164 #8 0x00007ffa8575cdc4 in xmp_files_open_new ( path=0x2afcb10 "$PATH_TO_FILE/exempi.gif", options=XMP_OPEN_NOOPTION) at exempi.cpp:272 #9 0x0000000000441423 in ?? () #10 0x000000000045d3a1 in ?? () #11 0x0000000000462668 in ?? () #12 0x000000000049c6dc in ?? () #13 0x00007ffa85cd70cf in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #14 0x00007ffa85cd78c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #15 0x00007ffa85cd7e02 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #16 0x00007ffa87fd9fdd in gtk_main () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0 #17 0x00007ffa86678bbe in g_application_run () ---Type <return> to continue, or q <return> to quit--- from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #18 0x000000000042d910 in ?? () #19 0x00007ffa84cfaead in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6 #20 0x000000000042d951 in ?? () #21 0x00007ffff1c832b8 in ?? () #22 0x000000000000001c in ?? () #23 0x0000000000000001 in ?? () #24 0x00007ffff1c836a2 in ?? () #25 0x0000000000000000 in ?? () -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 3.1.0-1-amd64 (SMP w/2 CPU cores) Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libexempi3 depends on: ii libc6 2.13-24 ii libexpat1 2.0.1-7.2 ii libgcc1 1:4.6.2-11 ii libstdc++6 4.6.2-11 ii zlib1g 1:1.2.3.4.dfsg-3 libexempi3 recommends no packages. libexempi3 suggests no packages. -- no debconf information
<<attachment: exempi.gif>>

