Package: feh Version: 1.9-1 Severity: normal
Feh segmentation faults when image list includes enough invalid images with long file names after a valid image. How to reproduce: wget http://packages.debian.org/Pics/debian-small.png for I in 1 2 3 4 5 6 7 8 9 10; do echo asdf > zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_"$I".txt; done feh -D 1 * And result is: feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_10.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_1.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_2.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_3.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_4.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_5.txt - No Imlib2 loader for that file format Segmentation fault Compiling from source and using Valgrind gives following output (Valgrind prevents segmentation fault from happening): $ valgrind /tmp/feh-1.9/src/feh --cycle-once -D 1 * .... feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_5.txt - No Imlib2 loader for that file format ==21202== Invalid read of size 8 ==21202== at 0x4129B0: feh_list_jump (slideshow.c:493) ==21202== by 0x4131B1: slideshow_change_image (slideshow.c:204) ==21202== by 0x416DFE: feh_handle_timer (timers.c:43) ==21202== by 0x40CF74: feh_main_iteration (main.c:165) ==21202== by 0x40D0B1: main (main.c:76) ==21202== Address 0x6ebd428 is 8 bytes inside a block of size 24 free'd ==21202== at 0x4C240FD: free (vg_replace_malloc.c:366) ==21202== by 0x587ADF0: gib_list_remove (gib_list.c:419) ==21202== by 0x4130DC: slideshow_change_image (slideshow.c:272) ==21202== by 0x416DFE: feh_handle_timer (timers.c:43) ==21202== by 0x40CF74: feh_main_iteration (main.c:165) ==21202== by 0x40D0B1: main (main.c:76) .... Full output of Valgrind run is attached. -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (990, 'testing'), (100, 'unstable'), (99, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.35-trunk-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages feh depends on: ii giblib1 1.2.4-5 wrapper library for imlib2, and ot ii libc6 2.11.2-6 Embedded GNU C Library: Shared lib ii libimlib2 1.4.2-8+b2 powerful image loading and renderi ii libpng12-0 1.2.44-1 PNG library - runtime ii libx11-6 2:1.3.3-3 X11 client-side library ii libxinerama1 2:1.1-3 X11 Xinerama extension library Versions of packages feh recommends: ii libjpeg-progs 8b-1 Programs for manipulating JPEG fil ii wget 1.12-2.1 retrieves files from the web feh suggests no packages. -- no debconf information
==21392== Memcheck, a memory error detector ==21392== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==21392== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==21392== Command: /tmp/feh-1.9/src/feh --cycle-once -D 1 debian-small.png zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_10.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_1.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_2.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_3.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_4.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_5.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_6.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_7.txt zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_8.txt zzzzzzzzzzzzzz zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_9.txt ==21392== ==21392== Conditional jump or move depends on uninitialised value(s) ==21392== at 0x5FED290: inflateReset2 (in /usr/lib/libz.so.1.2.3.4) ==21392== by 0x5FED37F: inflateInit2_ (in /usr/lib/libz.so.1.2.3.4) ==21392== by 0x50BDF93: png_create_read_struct_2 (in /lib/libpng12.so.0.44.0) ==21392== by 0x50BE146: png_create_read_struct (in /lib/libpng12.so.0.44.0) ==21392== by 0x81510F9: load (in /usr/lib/imlib2/loaders/png.so) ==21392== by 0x563301D: ??? (in /usr/lib/libImlib2.so.1.4.2) ==21392== by 0x561EE05: imlib_load_image_with_error_return (in /usr/lib/libImlib2.so.1.4.2) ==21392== by 0x40A239: feh_load_image (imlib.c:155) ==21392== by 0x4194F9: winwidget_create_from_file (winwidget.c:692) ==21392== by 0x4137BB: init_slideshow_mode (slideshow.c:61) ==21392== by 0x40D12B: main (main.c:72) ==21392== feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_10.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_1.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_2.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_3.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_4.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_5.txt - No Imlib2 loader for that file format ==21392== Invalid read of size 8 ==21392== at 0x4129B0: feh_list_jump (slideshow.c:493) ==21392== by 0x4131B1: slideshow_change_image (slideshow.c:204) ==21392== by 0x416DFE: feh_handle_timer (timers.c:43) ==21392== by 0x40CF74: feh_main_iteration (main.c:165) ==21392== by 0x40D0B1: main (main.c:76) ==21392== Address 0x6ebd428 is 8 bytes inside a block of size 24 free'd ==21392== at 0x4C240FD: free (vg_replace_malloc.c:366) ==21392== by 0x587ADF0: gib_list_remove (gib_list.c:419) ==21392== by 0x4130DC: slideshow_change_image (slideshow.c:272) ==21392== by 0x416DFE: feh_handle_timer (timers.c:43) ==21392== by 0x40CF74: feh_main_iteration (main.c:165) ==21392== by 0x40D0B1: main (main.c:76) ==21392== feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_6.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_7.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_8.txt - No Imlib2 loader for that file format feh WARNING: zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_9.txt - No Imlib2 loader for that file format ==21392== ==21392== HEAP SUMMARY: ==21392== in use at exit: 87,243 bytes in 247 blocks ==21392== total heap usage: 1,001 allocs, 754 frees, 584,634 bytes allocated ==21392== ==21392== LEAK SUMMARY: ==21392== definitely lost: 0 bytes in 0 blocks ==21392== indirectly lost: 0 bytes in 0 blocks ==21392== possibly lost: 435 bytes in 7 blocks ==21392== still reachable: 86,808 bytes in 240 blocks ==21392== suppressed: 0 bytes in 0 blocks ==21392== Rerun with --leak-check=full to see details of leaked memory ==21392== ==21392== For counts of detected and suppressed errors, rerun with: -v ==21392== Use --track-origins=yes to see where uninitialised values come from ==21392== ERROR SUMMARY: 3 errors from 2 contexts (suppressed: 58 from 7)

