Review Request 127488: Fix usage of std::isprint() function

Aleix Pol Gonzalez aleixpol at kde.org
Tue Mar 29 15:45:13 UTC 2016


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


Ship it!




Ship It!

- Aleix Pol Gonzalez


On March 27, 2016, 8:21 p.m., Dominik Haumann wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127488/
> -----------------------------------------------------------
> 
> (Updated March 27, 2016, 8:21 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
> -----
> 
>   autotests/kencodingprobertest.cpp 937bc13 
>   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
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20160329/8c080c0a/attachment.html>


More information about the Kde-frameworks-devel mailing list