[Kde-games-devel] Review Request 126919: Fix crash when placing bonuses in the arena

Julian Helfferich julian.helfferich at googlemail.com
Sat Jan 30 04:19:36 UTC 2016


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

(Updated Jan. 30, 2016, 4:19 a.m.)


Review request for KDE Games.


Changes
-------

Fix calculation of the size of the last quarter (spotted by Mathias Kraus)


Repository: granatier


Description
-------

The crash takes place in game.cpp - Game::createBonus(). The total amount of blocks is nFullSize. To place the bonuses, the game iterates over 4 quarters, the first three containing nFullSize/4 blocks and the last containing the remaining blocks. Thus, nQuarterSize can be larger for the last quarter than for the previous three. Now, when a bonus is assigned to a block, the index of the block is calculated as

nIndex = nQuarter * nQuarterSize + i

where i iterates from zero to nQuarterSize. The idea is that nQuarter * nQuarterSize is the number of blocks of the previous quarters. However, since nQuarterSize can be larger for the last quarter, this can lead to an index out of bounds when a bonus is to be placed in one of the last blocks. The fixed version is

nIndex = nQuarter * (nFullSize/4) + i

where nFullSize/4 is the size of the first three quarters.


Diffs (updated)
-----

  src/game.cpp 371fac9 

Diff: https://git.reviewboard.kde.org/r/126919/diff/


Testing
-------

Started the game a lot of times. Crash did not happen.


Thanks,

Julian Helfferich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-games-devel/attachments/20160130/11c3b6c7/attachment-0001.html>


More information about the kde-games-devel mailing list