Summary: | memcheck reports "invalid read" errors in the jpeg filter | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Halla Rempt <halla> |
Component: | File formats | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED UPSTREAM | ||
Severity: | normal | CC: | dimula73 |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Halla Rempt
2011-11-23 20:53:07 UTC
Running of the KisJpegTest under valgring shows different problems: ==19947== Invalid read of size 2 ==19947== at 0x569D296: exifOECFToKMDOECFStructure(std::auto_ptr<Exiv2::Value>, Exiv2::ByteOrder) (kis_exif_io.cpp:177) ==19947== by 0x56A39B6: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:572) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== by 0x40678D: KisJpegTest::qt_metacall(QMetaObject::Call, int, void**) (kis_jpeg_test.moc:72) ==19947== by 0xBBB30CE: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (in /usr/lib64/libQtCore.so.4.7.1) ==19947== Address 0x231f83be is 10 bytes after a block of size 2,100 alloc'd ==19947== at 0x4C2683D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19947== by 0xBAC39C0: QByteArray::QByteArray(int, char) (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0x569CC6F: exifOECFToKMDOECFStructure(std::auto_ptr<Exiv2::Value>, Exiv2::ByteOrder) (kis_exif_io.cpp:146) ==19947== by 0x56A39B6: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:572) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== ==19947== Invalid read of size 2 ==19947== at 0x569D2B0: exifOECFToKMDOECFStructure(std::auto_ptr<Exiv2::Value>, Exiv2::ByteOrder) (kis_exif_io.cpp:177) ==19947== by 0x56A39B6: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:572) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== by 0x40678D: KisJpegTest::qt_metacall(QMetaObject::Call, int, void**) (kis_jpeg_test.moc:72) ==19947== by 0xBBB30CE: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (in /usr/lib64/libQtCore.so.4.7.1) ==19947== Address 0x231f83bc is 8 bytes after a block of size 2,100 alloc'd ==19947== at 0x4C2683D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19947== by 0xBAC39C0: QByteArray::QByteArray(int, char) (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0x569CC6F: exifOECFToKMDOECFStructure(std::auto_ptr<Exiv2::Value>, Exiv2::ByteOrder) (kis_exif_io.cpp:146) ==19947== by 0x56A39B6: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:572) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== ==19947== Invalid read of size 1 ==19947== at 0xBBDEFFE: ??? (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0xBB05EBB: QString::fromUtf16(unsigned short const*, int) (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0x569E397: deviceSettingDescriptionExifToKMD(std::auto_ptr<Exiv2::Value>) (kis_exif_io.cpp:249) ==19947== by 0x56A3C9C: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:576) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== Address 0x23600208 is 0 bytes after a block of size 456 alloc'd ==19947== at 0x4C2683D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19947== by 0xBAC3C9C: QByteArray::resize(int) (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0x569E059: deviceSettingDescriptionExifToKMD(std::auto_ptr<Exiv2::Value>) (kis_exif_io.cpp:232) ==19947== by 0x56A3C9C: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:576) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== ==19947== Invalid read of size 1 ==19947== at 0xBBDF020: ??? (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0xBB05EBB: QString::fromUtf16(unsigned short const*, int) (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0x569E397: deviceSettingDescriptionExifToKMD(std::auto_ptr<Exiv2::Value>) (kis_exif_io.cpp:249) ==19947== by 0x56A3C9C: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:576) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) ==19947== Address 0x23600209 is 1 bytes after a block of size 456 alloc'd ==19947== at 0x4C2683D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==19947== by 0xBAC3C9C: QByteArray::resize(int) (in /usr/lib64/libQtCore.so.4.7.1) ==19947== by 0x569E059: deviceSettingDescriptionExifToKMD(std::auto_ptr<Exiv2::Value>) (kis_exif_io.cpp:232) ==19947== by 0x56A3C9C: KisExifIO::loadFrom(KisMetaData::Store*, QIODevice*) const (kis_exif_io.cpp:576) ==19947== by 0x31E06D75: KisJPEGConverter::decode(KUrl const&) (kis_jpeg_converter.cc:312) ==19947== by 0x31E07F94: KisJPEGConverter::buildImage(KUrl const&) (kis_jpeg_converter.cc:432) ==19947== by 0x31E040FA: KisJPEGImport::convert(QByteArray const&, QByteArray const&) (kis_jpeg_import.cc:72) ==19947== by 0x627AA4A: CalligraFilter::ChainLink::invokeFilter(CalligraFilter::ChainLink const*) (KoFilterChainLink.cpp:90) ==19947== by 0x627091A: KoFilterChain::invokeChain() (KoFilterChain.cpp:94) ==19947== by 0x6269814: KoFilterManager::importDocument(QString const&, QString const&, KoFilter::ConversionStatus&) (KoFilterManager.cpp:170) ==19947== by 0x405438: TestUtil::testFiles(QString const&, QStringList const&, QString const&, int) (filestest.h:71) ==19947== by 0x406007: KisJpegTest::testFiles() (kis_jpeg_test.cpp:43) It depends on the image used for the test. Changing the image generates your backtraces This bug is probably related: http://code.google.com/p/chromium/issues/detail?id=72399 The bug is in libjpeg6.2. The same error appears in ImageMagick's 'display' on openSUSE 11.4. Tested with Ubunto 11.10 + libjpeg8 -- works fine, no errors. So slosing the bug. |