[Scummvm-tracker] [ScummVM :: Bugs] #15294: AGS: Incorrect Use of Bitwise OR Instead of Logical OR in SetSliderValue

ScummVM :: Bugs trac at scummvm.org
Thu Jul 25 06:53:08 UTC 2024


#15294: AGS: Incorrect Use of Bitwise OR Instead of Logical OR in SetSliderValue
--------------------+--------------------------
Reporter:  RainRat  |       Owner:  (none)
    Type:  defect   |      Status:  new
Priority:  low      |   Component:  Engine: AGS
 Version:           |  Resolution:
Keywords:           |        Game:
--------------------+--------------------------
Description changed by RainRat:

Old description:

> In 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");
> }}}

New description:

 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");
 }}}

--
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15294#comment:1>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list