several reports of a problem with jpeg test in vcl

Tomaž Vajngerl quikee at gmail.com
Sun May 12 02:42:23 PDT 2013


Hi,

Probably one of my changes is the cause for this.

One of the problems is that CVE-2004-0200-3.jpg is a semi corrupt file.
Usually it can be read fine but doing any transform operations fails. For
example jpegtrans fails for this file, GIMP does not open it, ImageMagick's
convert does not work.
>From the memcheck I can see that libjpeg6 was used - maybe this is what
triggers the problem as libjpeg8 is usually used today.

Regards, Tomaž

On Sun, May 12, 2013 at 10:05 AM, Markus Mohrhard <
markus.mohrhard at googlemail.com> wrote:

> Hey Caolan, *,
>
> so after we got several complains about test failure in vcl with the
> same file I looked at it with memcheck and can at least produce an
> output there. The test does not fail for me or at the tinderbox but we
> had now 3 independet people having problems with the same file on
> different systems.
>
> The memcheck output is:
>
>
> file:///home/moggi/devel/libo4/vcl/qa/cppunit/graphicfilter/data/jpg/pass/CVE-2004-0200-3.jpg,==13272==
> Invalid read of size 8
> ==13272==    at 0xF1FF117: ??? (in /usr/lib64/libjpeg.so.62.0.0)
> ==13272==  Address 0x15779db0 is 32 bytes inside a block of size 36 alloc'd
> ==13272==    at 0x4C2ABED: malloc (in
> /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==13272==    by 0x4E5D899: rtl_allocateMemory_SYSTEM(unsigned long)
> (alloc_global.cxx:269)
> ==13272==    by 0x4E5D9A0: rtl_allocateMemory (alloc_global.cxx:302)
> ==13272==    by 0xC9F5D18: JPEGReader::CreateBitmap(void*)
> (JpegReader.cxx:282)
> ==13272==    by 0xC9F527A: CreateBitmapFromJPEGReader (JpegReader.cxx:41)
> ==13272==    by 0xC88C596: ReadJPEG (jpegc.c:151)
> ==13272==    by 0xC9F67E2: JPEGReader::Read(Graphic&) (JpegReader.cxx:428)
> ==13272==    by 0xC9F50AB: ImportJPEG(SvStream&, Graphic&, void*, int)
> (jpeg.cxx:50)
> ==13272==    by 0xC9CD5C1: GraphicFilter::ImportGraphic(Graphic&,
> String const&, SvStream&, unsigned short, unsigned short*, unsigned
> int, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>*,
> WMF_EXTERNALHEADER*) (graphicfilter.cxx:1498)
> ==13272==    by 0xC9CCD3B: GraphicFilter::ImportGraphic(Graphic&,
> String const&, SvStream&, unsigned short, unsigned short*, unsigned
> int, WMF_EXTERNALHEADER*) (graphicfilter.cxx:1327)
> ==13272==    by 0xB38AB00: VclFiltersTest::load(rtl::OUString const&,
> rtl::OUString const&, rtl::OUString const&, unsigned int, unsigned
> int, unsigned int) (filters-test.cxx:53)
> ==13272==    by 0xC413C0A:
> test::FiltersTest::recursiveScan(test::filterStatus, rtl::OUString
> const&, rtl::OUString const&, rtl::OUString const&, unsigned int,
> unsigned int, unsigned int) (filters-test.cxx:113)
> ==13272==    by 0xC41463E: test::FiltersTest::testDir(rtl::OUString
> const&, rtl::OUString const&, rtl::OUString const&, unsigned int,
> unsigned int, unsigned int) (filters-test.cxx:137)
> ==13272==    by 0xB38AC1F: VclFiltersTest::testCVEs() (filters-test.cxx:61)
> ==13272==    by 0xB38CBB3:
> CppUnit::TestCaller<VclFiltersTest>::runTest() (TestCaller.h:166)
> ==13272==    by 0x516529B:
> CppUnit::TestCaseMethodFunctor::operator()() const (TestCase.cpp:32)
> ==13272==    by 0x7AE29DE: (anonymous
> namespace)::Prot::protect(CppUnit::Functor const&,
> CppUnit::ProtectorContext const&) (unobootstrapprotector.cxx:88)
> ==13272==    by 0x515D3D6:
> CppUnit::ProtectorChain::ProtectFunctor::operator()() const
> (ProtectorChain.cpp:20)
> ==13272==    by 0x6799481: (anonymous
> namespace)::Prot::protect(CppUnit::Functor const&,
> CppUnit::ProtectorContext const&) (unoexceptionprotector.cxx:64)
> ==13272==    by 0x515D3D6:
> CppUnit::ProtectorChain::ProtectFunctor::operator()() const
> (ProtectorChain.cpp:20)
> ==13272==    by 0x514ED4B:
> CppUnit::DefaultProtector::protect(CppUnit::Functor const&,
> CppUnit::ProtectorContext const&) (DefaultProtector.cpp:15)
> ==13272==    by 0x515D3D6:
> CppUnit::ProtectorChain::ProtectFunctor::operator()() const
> (ProtectorChain.cpp:20)
> ==13272==    by 0x515D26B:
> CppUnit::ProtectorChain::protect(CppUnit::Functor const&,
> CppUnit::ProtectorContext const&) (ProtectorChain.cpp:77)
> ==13272==    by 0x5174481:
> CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*,
> std::string const&) (TestResult.cpp:181)
> ==13272==    by 0x5164D6B:
> CppUnit::TestCase::run(CppUnit::TestResult*) (TestCase.cpp:92)
> ==13272==    by 0x5165B07:
> CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*)
> (TestComposite.cpp:64)
> ==13272==    by 0x5165991:
> CppUnit::TestComposite::run(CppUnit::TestResult*)
> (TestComposite.cpp:23)
> ==13272==    by 0x5165B07:
> CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*)
> (TestComposite.cpp:64)
> ==13272==    by 0x5165991:
> CppUnit::TestComposite::run(CppUnit::TestResult*)
> (TestComposite.cpp:23)
> ==13272==    by 0x517B66D:
> CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*)
> (TestRunner.cpp:47)
> ==13272==    by 0x517418B:
> CppUnit::TestResult::runTest(CppUnit::Test*) (TestResult.cpp:148)
> ==13272==    by 0x517B8CB:
> CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&)
> (TestRunner.cpp:96)
> ==13272==    by 0x403E5E: (anonymous
> namespace)::ProtectedFixtureFunctor::run() const
> (cppunittester.cxx:151)
> ==13272==    by 0x4044F0: sal_main() (cppunittester.cxx:243)
> ==13272==    by 0x404138: main (cppunittester.cxx:167)
>
>
> I can't see anything obviously wrong there but maybe you see something.
>
> Regards,
> MArkus
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libreoffice
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130512/15c623ef/attachment.html>


More information about the LibreOffice mailing list