vkrause created this revision. Herald added a project: Frameworks. Herald added a subscriber: kde-frameworks-devel. vkrause requested review of this revision.
REVISION SUMMARY Wikipedia says "after bit stuffing, the data string is padded to the next codeword boundary by appending 1 bits. If this would result in a code word of all ones, the last bit is changed to zero", we were missing the second part here. While this difference wouldn't confuse the decoder normally, it is also fed into the Reed-Solomon encoder, and thus spread out and multiplied, resulting in a non-decodeable image. This is sufficiently unlikely (needs a content ending with a binary content with enough bits set, and unfortunate alignment of the bit stream), which is why this went unnoticed for quite a while. REPOSITORY R280 Prison BRANCH master REVISION DETAIL https://phabricator.kde.org/D20939 AFFECTED FILES autotests/aztecbarcodetest.cpp src/lib/aztecbarcode.cpp To: vkrause Cc: kde-frameworks-devel, michaelh, ngraham, bruns