Description of problem: fusecompress may fail to decompress lzo-compressed files it created. The bug is caused by a following thinko in basic_lzo_decompressor::do_filter: 93 while (true) 94 { 95 len = srcSize * 10; 96 97 tmp.reserve(len); 98 for (unsigned int i = 0; i < tmp.capacity(); ++i) 99 tmp.push_back(0); 100 101 int ret; 102 if ((ret = lzo1x_decompress_safe((lzo_bytep) &src[0], src.size(), 103 (lzo_bytep) &tmp[0], &len, NULL)) == LZO_E_OUTPUT_OVERRUN) { 104 105 srcSize *= 2; 106 continue; 107 } 108 break; 109 } When decompressing a block of the compressed file, a buffer for uncompressed data is initially allocated to have 10-times the size of the input (95). When that is insufficient (102), the size is doubled (105). In that case, for loop (98) tries to initialize tmp.capacity() members of the vector, but fails to take into an account that tmp is non-empty, resulting in loop running until bad_alloc exception is raised. Steps to Reproduce: 1. wget http://svn.easysw.com/public/cups/trunk/test/testfile.txt 2. fusecompress_offline -o fc_d,fc_c:lzo testfile.txt 3. fusecompress_offline -o fc_d testfile.txt Outputs of the command can be found in the upstream bug: https://developer.berlios.de/bugs/?func=detailbug&bug_id=16324&group_id=5384 Additional info: Upstream git has this fixed already: http://github.com/tex/fusecompress/commit/58a6785d54f88b0178f43adb6301423121cc4eb1
fusecompress-2.6-6.20100223git754bc0de.fc13 has been submitted as an update for Fedora 13. http://admin.fedoraproject.org/updates/fusecompress-2.6-6.20100223git754bc0de.fc13
fusecompress-2.6-6.20100223git754bc0de.fc12 has been submitted as an update for Fedora 12. http://admin.fedoraproject.org/updates/fusecompress-2.6-6.20100223git754bc0de.fc12
Snapshot built that should include the quoted fix.
fusecompress-2.6-6.20100223git754bc0de.fc13 has been pushed to the Fedora 13 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update fusecompress'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F13/FEDORA-2010-2801
fusecompress-2.6-6.20100223git754bc0de.fc12 has been pushed to the Fedora 12 testing repository. If problems still persist, please make note of it in this bug report. If you want to test the update, you can install it with su -c 'yum --enablerepo=updates-testing update fusecompress'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F12/FEDORA-2010-2951
fusecompress-2.6-6.20100223git754bc0de.fc13 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report.
fusecompress-2.6-6.20100223git754bc0de.fc12 has been pushed to the Fedora 12 stable repository. If problems still persist, please make note of it in this bug report.