First, I'd like to apologize that I wasn't able to extract the problematic
code. I hope somebody more experienced will find the way how to do it.

Problematic code is in enblend, which can be downloaded from cvs using cvs:
cvs -z3 -d :pserver:anonym...@enblend.cvs.sourceforge.net:/cvsroot/enblend -f
enblend

The problem is in src/mask.h:228 in (*mxLeft != *mx). It seems that it crashes
when dereferencing pointer (which should be valid because it's used before),
because it even doesn't get to overloaded operator!= function in
include/vigra/diff2d.hxx:1093

I've tested it with gcc 3.4.6 and it works without segfaults, so I think that
it can be some regression. Moreover, windows version compiled with MSVC seems
do be unaffected too.

I think it can be somewhat connected to bug #32896.

It has already been reported in hugin's bugtracker (enblend is a part of it):
https://sourceforge.net/tracker2/?func=detail&aid=2121647&group_id=77506&atid=550441

Steps to reproduce:
-------------------
compile enblend:
  make -f Makefile.cvs
  ./configure --prefix=/usr --enable-debug=no --with-x
  sed -i 's|#define\ malloc\ rpl_malloc|/* & */|' config.h # sometimes maloc is
not detected corectly
  make
Download test files which cause segfault and unzip them from:
  http://blender6xx.ic.cz/pub/DEBUG.zip
run enblend:
  enblend kladruby00* -o test.tif

After some time it segfaults

System information
------------------
OS: Archlinux current (but it affect wide spectrum of distributions, so it's
not problem in only one distro)

uname -a: Linux red_dragon 2.6.27.10 #2 Sat Dec 20 09:47:07 CET 2008 i686
Intel(R) Pentium(R) 4 CPU 2.00GHz GenuineIntel GNU/Linux

gcc -v:
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../configure --prefix=/usr --enable-shared
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix
--mandir=/usr/share/man --infodir=/usr/share/info --enable-__cxa_atexit
--disable-multilib --libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu
--disable-libstdcxx-pch --with-tune=generic
Thread model: posix
gcc version 4.3.2 (GCC)

gcc-3.4 -v
Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/specs
Configured with: ../gcc-3.4.6/configure --prefix=/usr --enable-shared
--enable-languages=c,c++ --enable-threads=posix --mandir=/usr/share/man
--libexecdir=/usr/lib --enable-__cxa_atexit --disable-multilib
--libdir=/usr/lib --enable-clocale=gnu --program-suffix=-3.4
Thread model: posix
gcc version 3.4.6


-- 
           Summary: Segmentation fault when dereferencing valid pointer,
                    probably REGRESSION
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: l dot jirkovsky at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38625

Reply via email to