-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127488/
-----------------------------------------------------------

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

Reply via email to