[Digikam-devel] [Bug 273765] replacing pgf files with an open digikam lead to reproducible crash

Marcel Wiesweg marcel.wiesweg at gmx.de
Mon May 30 20:53:34 BST 2011


https://bugs.kde.org/show_bug.cgi?id=273765





--- Comment #12 from Marcel Wiesweg <marcel wiesweg gmx de>  2011-05-30 21:53:33 ---
As a hint for the writer bug: valgrind gives the following eight errors when
saving a PGF.
Uninitialized value problems tend to work in 99% of cases but break for the
rest (could explain this bug is rarely seen)

==28252== Conditional jump or move depends on uninitialised value(s)
==28252==    at 0x80A6813: CEncoder::RLESigsAndSigns(unsigned int*, unsigned
int, unsigned int*, unsigned int) (BitStream.h:203)
==28252==    by 0x80A7054: CEncoder::BitplaneEncode(unsigned int)
(Encoder.cpp:380)
==28252==    by 0x80A72F7: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:274)
==28252==    by 0x80A7461: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:253)
==28252==    by 0x80A7544: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:152)
==28252==    by 0x80AE01D: CSubband::ExtractTile(CEncoder&, int, bool, unsigned
int, unsigned int) (Subband.cpp:188)
==28252==    by 0x80A956C: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:922)

==28252== 
==28252== Conditional jump or move depends on uninitialised value(s)
==28252==    at 0x80A686A: CEncoder::RLESigsAndSigns(unsigned int*, unsigned
int, unsigned int*, unsigned int) (Encoder.cpp:628)
==28252==    by 0x80A7054: CEncoder::BitplaneEncode(unsigned int)
(Encoder.cpp:380)
==28252==    by 0x80A72F7: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:274)
==28252==    by 0x80A7461: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:253)
==28252==    by 0x80A7544: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:152)
==28252==    by 0x80AE01D: CSubband::ExtractTile(CEncoder&, int, bool, unsigned
int, unsigned int) (Subband.cpp:188)
==28252==    by 0x80A956C: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:922)

==28252== 
==28252== Syscall param write(buf) points to uninitialised byte(s)
==28252==    at 0xBA6131D: ??? (in /lib64/libpthread-2.11.3.so)
==28252==    by 0x80AD921: CPGFFileStream::Write(int*, void*)
(PGFplatform.h:510)
==28252==    by 0x80A7352: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:311)
==28252==    by 0x80A7461: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:253)
==28252==    by 0x80A7544: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:152)
==28252==    by 0x80AE01D: CSubband::ExtractTile(CEncoder&, int, bool, unsigned
int, unsigned int) (Subband.cpp:188)
==28252==    by 0x80A956C: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:922)
==28252==  Address 0x359a3b35 is on thread 5's stack


==28252== Conditional jump or move depends on uninitialised value(s)
==28252==    at 0x80A6AB6: CEncoder::RLESigns(unsigned int*, unsigned int)
(BitStream.h:233)
==28252==    by 0x80A7133: CEncoder::BitplaneEncode(unsigned int)
(Encoder.cpp:418)
==28252==    by 0x80A72F7: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:274)
==28252==    by 0x80A7461: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:253)
==28252==    by 0x80A7544: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:152)
==28252==    by 0x80AE01D: CSubband::ExtractTile(CEncoder&, int, bool, unsigned
int, unsigned int) (Subband.cpp:188)
==28252==    by 0x80A963B: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:932)

==28252== 
==28252== Conditional jump or move depends on uninitialised value(s)
==28252==    at 0x80A6A9C: CEncoder::RLESigns(unsigned int*, unsigned int)
(BitStream.h:233)
==28252==    by 0x80A7133: CEncoder::BitplaneEncode(unsigned int)
(Encoder.cpp:418)
==28252==    by 0x80A72F7: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:274)
==28252==    by 0x80A7461: CEncoder::WriteValue(CSubband*, int)
(Encoder.cpp:253)
==28252==    by 0x80A7544: CEncoder::Partition(CSubband*, int, int, int, int)
(Encoder.cpp:152)
==28252==    by 0x80AE01D: CSubband::ExtractTile(CEncoder&, int, bool, unsigned
int, unsigned int) (Subband.cpp:188)
==28252==    by 0x80A966F: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:933)

==28252== 
==28252== Conditional jump or move depends on uninitialised value(s)
==28252==    at 0x80A6813: CEncoder::RLESigsAndSigns(unsigned int*, unsigned
int, unsigned int*, unsigned int) (BitStream.h:203)
==28252==    by 0x80A7054: CEncoder::BitplaneEncode(unsigned int)
(Encoder.cpp:380)
==28252==    by 0x80A72F7: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:274)
==28252==    by 0x80A76BC: CEncoder::Flush() (Encoder.cpp:216)
==28252==    by 0x80A96D1: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:953)

==28252== Conditional jump or move depends on uninitialised value(s)
==28252==    at 0x80A686A: CEncoder::RLESigsAndSigns(unsigned int*, unsigned
int, unsigned int*, unsigned int) (Encoder.cpp:628)
==28252==    by 0x80A7054: CEncoder::BitplaneEncode(unsigned int)
(Encoder.cpp:380)
==28252==    by 0x80A72F7: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:274)
==28252==    by 0x80A76BC: CEncoder::Flush() (Encoder.cpp:216)
==28252==    by 0x80A96D1: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:953)

==28252== Syscall param write(buf) points to uninitialised byte(s)
==28252==    at 0xBA6131D: ??? (in /lib64/libpthread-2.11.3.so)
==28252==    by 0x80AD921: CPGFFileStream::Write(int*, void*)
(PGFplatform.h:510)
==28252==    by 0x80A7352: CEncoder::EncodeBuffer(ROIBlockHeader)
(Encoder.cpp:311)
==28252==    by 0x80A76BC: CEncoder::Flush() (Encoder.cpp:216)
==28252==    by 0x80A96D1: CPGFImage::Write(CPGFStream*, int, bool (*)(double,
bool, void*), unsigned int*, void*) (PGFimage.cpp:953)
==28252==    by 0x7EE1544: Digikam::PGFLoader::save(QString const&,
Digikam::DImgLoaderObserver*) (pgfloader.cpp:438)

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list