Opened 8 weeks ago

Last modified 8 weeks ago

#15294 new defect

AGS: Incorrect Use of Bitwise OR Instead of Logical OR in SetSliderValue — at Version 1

Reported by: RainRat Owned by:
Priority: normal Component: Engine: AGS
Version: Keywords:
Cc: Game:

Description (last modified by RainRat)

In scummvm\engines\ags\engine\ac\global_slider.cpp the SetSliderValue and GetSliderValue functions, the validation checks for the GUI number (guin) are using the bitwise OR operator (|) instead of the logical OR operator (||).

Affected Code:

void SetSliderValue(int guin, int objn, int valn) {
    if ((guin < 0) | (guin >= _GP(game).numgui)) quit("!SetSliderValue: invalid GUI number");
[...]
int GetSliderValue(int guin, int objn) {
    if ((guin < 0) | (guin >= _GP(game).numgui)) quit("!GetSliderValue: invalid GUI number");

Corrected Code:

void SetSliderValue(int guin, int objn, int valn) {
    if ((guin < 0) || (guin >= _GP(game).numgui)) quit("!SetSliderValue: invalid GUI number");
[...]
int GetSliderValue(int guin, int objn) {
    if ((guin < 0) || (guin >= _GP(game).numgui)) quit("!GetSliderValue: invalid GUI number");

Change History (1)

comment:1 by RainRat, 8 weeks ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.