eog crashed with SIGSEGV in TIFFRGBAImageGet()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
LibTIFF |
Fix Released
|
Medium
|
|||
tiff (Debian) |
Fix Released
|
Unknown
|
|||
tiff (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Lucid |
Fix Released
|
Medium
|
Kees Cook | ||
Maverick |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Binary package hint: libtiff4
A crash in libtiff when opening the attached TIFF image.
==19393== Memcheck, a memory error detector
==19393== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
==19393== Using Valgrind-
==19393== Command: eog /home/sauli/
==19393==
==19393== Thread 2:
==19393== Invalid read of size 1
==19393== at 0x7C91C88: TIFFYCbCrtoRGB (in /usr/lib/
==19393== by 0x7CA4D3C: ??? (in /usr/lib/
==19393== by 0x7CA73EE: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393== Address 0xdca3a13 is not stack'd, malloc'd or (recently) free'd
==19393==
==19393== Invalid read of size 1
==19393== at 0x7CA4D15: ??? (in /usr/lib/
==19393== by 0x7CA73EE: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393== by 0x4B0ADEE: ??? (in /lib/libglib-
==19393== Address 0xdcbab7a is 2 bytes after a block of size 80,640 alloc'd
==19393== at 0x4024F20: malloc (vg_replace_
==19393== by 0x7CC0FCC: _TIFFmalloc (in /usr/lib/
==19393== by 0x7CA72B4: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393==
==19393== Invalid read of size 1
==19393== at 0x7CA4D1D: ??? (in /usr/lib/
==19393== by 0x7CA73EE: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393== by 0x4B0ADEE: ??? (in /lib/libglib-
==19393== Address 0xdcbab79 is 1 bytes after a block of size 80,640 alloc'd
==19393== at 0x4024F20: malloc (vg_replace_
==19393== by 0x7CC0FCC: _TIFFmalloc (in /usr/lib/
==19393== by 0x7CA72B4: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393==
==19393== Invalid read of size 1
==19393== at 0x7CA4D25: ??? (in /usr/lib/
==19393== by 0x7CA73EE: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393== by 0x4B0ADEE: ??? (in /lib/libglib-
==19393== Address 0xdcbab78 is 0 bytes after a block of size 80,640 alloc'd
==19393== at 0x4024F20: malloc (vg_replace_
==19393== by 0x7CC0FCC: _TIFFmalloc (in /usr/lib/
==19393== by 0x7CA72B4: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393==
==19393==
==19393== Process terminating with default action of signal 11 (SIGSEGV)
==19393== Access not within mapped region at address 0xDCC5002
==19393== at 0x7CA4D15: ??? (in /usr/lib/
==19393== by 0x7CA73EE: ??? (in /usr/lib/
==19393== by 0x7CA4011: TIFFRGBAImageGet (in /usr/lib/
==19393== by 0x7CA95FF: TIFFReadRGBAIma
==19393== by 0x647EEF9: tiff_image_parse (io-tiff.c:292)
==19393== by 0x647F2FE: gdk_pixbuf_
==19393== by 0x477E7A0: gdk_pixbuf_
==19393== by 0x807C6F1: eog_image_load (eog-image.c:1056)
==19393== by 0x808804F: eog_job_load_run (eog-jobs.c:336)
==19393== by 0x8087DA3: eog_job_run (eog-jobs.c:153)
==19393== by 0x80877D6: eog_render_thread (eog-job-
==19393== by 0x4B0ADEE: ??? (in /lib/libglib-
==19393== If you believe this happened as a result of a stack
==19393== overflow in your program's main thread (unlikely but
==19393== possible), you can try to increase the size of the
==19393== main thread stack using the --main-stacksize= flag.
==19393== The main thread stack size used in this run was 8388608.
==19393==
==19393== HEAP SUMMARY:
==19393== in use at exit: 34,346,693 bytes in 451,265 blocks
==19393== total heap usage: 2,791,590 allocs, 2,340,325 frees, 120,283,290 bytes allocated
==19393==
==19393== LEAK SUMMARY:
==19393== definitely lost: 191 bytes in 3 blocks
==19393== indirectly lost: 120 bytes in 10 blocks
==19393== possibly lost: 32,786,764 bytes in 445,202 blocks
==19393== still reachable: 1,559,618 bytes in 6,050 blocks
==19393== suppressed: 0 bytes in 0 blocks
==19393== Rerun with --leak-check=full to see details of leaked memory
==19393==
==19393== For counts of detected and suppressed errors, rerun with: -v
==19393== ERROR SUMMARY: 78597 errors from 4 contexts (suppressed: 200 from 13)
Killed
ProblemType: Crash
DistroRelease: Ubuntu 10.04
Package: eog 2.30.0-0ubuntu1
ProcVersionSign
Uname: Linux 2.6.32-22-generic i686
Architecture: i386
CrashCounter: 1
Date: Wed Jun 9 09:49:48 2010
EcryptfsInUse: Yes
ExecutablePath: /usr/bin/eog
InstallationMedia: Ubuntu 10.04 "Lucid Lynx" - Alpha i386 (20100113)
ProcCmdline: eog /home/username/
ProcEnviron:
SHELL=/bin/bash
LANG=en_US.utf8
SegvAnalysis:
Segfault happened at: 0x39d8d15: movzbl 0x2(%esi),%eax
PC (0x039d8d15) ok
source "0x2(%esi)" (0xb5bb0002) in non-readable VMA region: 0xb5bb0000-
destination "%eax" ok
SegvReason: reading VMA None
Signal: 11
SourcePackage: eog
StacktraceTop:
?? () from /usr/lib/
?? () from /usr/lib/
TIFFRGBAImageGet () from /usr/lib/
TIFFReadRGBAIm
tiff_image_parse (tiff=0xb5b856e8,
Title: eog crashed with SIGSEGV in TIFFRGBAImageGet()
UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
XsessionErrors:
(polkit-
(gnome-
visibility: | private → public |
Changed in tiff (Ubuntu Lucid): | |
status: | New → Fix Committed |
importance: | Undecided → Medium |
Changed in tiff (Ubuntu Maverick): | |
assignee: | nobody → Kees Cook (kees) |
Changed in tiff (Ubuntu Lucid): | |
assignee: | nobody → Kees Cook (kees) |
Changed in tiff (Ubuntu Maverick): | |
assignee: | Kees Cook (kees) → nobody |
Changed in libtiff: | |
status: | Unknown → Fix Released |
Changed in tiff (Debian): | |
status: | Unknown → Fix Released |
Changed in libtiff: | |
importance: | Unknown → Medium |
This seems to be crashing on buffer over-read in putcontig8bitYC bCr11tile( ). gtTileContig() allocates buffer buf with size returned by TIFFTileSize() (80640 in this case). putcontig8bitYC bCr11tile( ) tries to read w*h*3 bytes out of it (234*213*3 = 149526 in this case).