----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/127488/#review93946 -----------------------------------------------------------
Btw: If you think QChar::isPrint() is a better choice [1], I'm happy to update the review request accordingly. [1] http://doc.qt.io/qt-5/qchar.html#isPrint-1 - Dominik Haumann On March 24, 2016, 9:06 p.m., Dominik Haumann wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/127488/ > ----------------------------------------------------------- > > (Updated March 24, 2016, 9:06 p.m.) > > > Review request for KDE Frameworks. > > > Bugs: 357341 > https://bugs.kde.org/show_bug.cgi?id=357341 > > > Repository: kcodecs > > > Description > ------- > > With the patch in review request https://git.reviewboard.kde.org/r/127486/ I > get another crash when loading the attached file in bug > https://bugs.kde.org/show_bug.cgi?id=360797 > > The issue is the call if isprint(int): Accoring to > http://en.cppreference.com/w/cpp/string/byte/isprint > "the behavior is undefined if the value of ch is not representable as > unsigned char and is not equal to EOF." > > In this case, casting the char to an int results "-31", which is clearly not > representable as *unsigned* char. Hence, we indeed hit the "undefined > behavior" and get a crash. > > This patch therefore > - casts the char to an int first > - and then checks whether the int it non-negative > - only then, isprint() is called. > > > Diffs > ----- > > src/probers/UnicodeGroupProber.cpp 1d86f08 > > Diff: https://git.reviewboard.kde.org/r/127488/diff/ > > > Testing > ------- > > Kate/Kwrite launch without crash. > Unit tests still pass. > > > Thanks, > > Dominik Haumann > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel