Ignore:
Timestamp:
Sep 15, 2013, 11:35:35 PM (6 years ago)
Author:
Pascal Terjan
Message:

Test limits before accessing the array (coverity)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/examples/conio.c

    r4369 r4871  
    151151    {
    152152      /*horizontal position*/
    153       if( xsquare[y][x]   == who &&
     153      if( (x+3)<X_BOARD &&
     154          xsquare[y][x]   == who &&
    154155          xsquare[y][x+1] == who &&
    155156          xsquare[y][x+2] == who &&
    156           xsquare[y][x+3] == who &&
    157           (x+3)<X_BOARD
     157          xsquare[y][x+3] == who
    158158        )
    159159        return TRUE;
    160160
    161161      /*vertical position*/
    162       if( xsquare[y][x]   == who &&
     162      if( (y+3)<Y_BOARD &&
     163          xsquare[y][x]   == who &&
    163164          xsquare[y+1][x] == who &&
    164165          xsquare[y+2][x] == who &&
    165           xsquare[y+3][x] == who &&
    166           (y+3)<Y_BOARD
     166          xsquare[y+3][x] == who
    167167        )
    168168        return TRUE;
    169169
    170170      /*downstair diagonal position*/
    171       if( xsquare[y][x]      == who &&
     171      if( (x+3)<X_BOARD             &&
     172          (y+3)<Y_BOARD             &&
     173          xsquare[y][x]      == who &&
    172174          xsquare[y+1][x+1]  == who &&
    173175          xsquare[y+2][x+2]  == who &&
    174           xsquare[y+3][x+3]  == who &&
    175           (x+3)<X_BOARD            &&
    176           (y+3)<Y_BOARD
     176          xsquare[y+3][x+3]  == who
    177177        )
    178178        return TRUE;
    179179
    180180      /*upstair diagonal position*/
    181       if( xsquare[y][x]      == who &&
     181      if( (x+3)<X_BOARD             &&
     182          (y-3)>=0                  &&
     183          xsquare[y][x]      == who &&
    182184          xsquare[y-1][x+1]  == who &&
    183185          xsquare[y-2][x+2]  == who &&
    184           xsquare[y-3][x+3]  == who &&
    185           (x+3)<X_BOARD            &&
    186           (y-3)>=0
     186          xsquare[y-3][x+3]  == who
    187187        )
    188188        return TRUE;
Note: See TracChangeset for help on using the changeset viewer.