aboutsummaryrefslogtreecommitdiffstats
path: root/FICS
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2025-04-05 20:02:09 +0200
committerMarkus Uhlin <markus@nifty-networks.net>2025-04-05 20:02:09 +0200
commit7b6d1973e34327e5b93543222245e81a0f73bc99 (patch)
tree3d92f049ec06c2c9e1455020293015c5f7ba8c1b /FICS
parentf0c3789064dbc4e78cffc2e90571dac1224c4955 (diff)
Fixed program logic mistakes, found by PVS-Studio
Diffstat (limited to 'FICS')
-rw-r--r--FICS/command.c6
-rw-r--r--FICS/formula.c2
-rw-r--r--FICS/gameproc.c6
3 files changed, 11 insertions, 3 deletions
diff --git a/FICS/command.c b/FICS/command.c
index 528bdf9..569c27a 100644
--- a/FICS/command.c
+++ b/FICS/command.c
@@ -132,7 +132,11 @@ parse_command(char *com_string, char **comm, char **parameters)
PUBLIC int
alias_lookup(char *tmp, alias_type *alias_list, int numalias)
{
- for (int i = 0; (alias_list[i].comm_name && i < numalias); i++) {
+ if (numalias >= MAX_ALIASES)
+ return -1;
+ for (int i = 0;
+ (i < numalias && alias_list[i].comm_name != NULL);
+ i++) {
if (!strcmp(tmp, alias_list[i].comm_name))
return i;
}
diff --git a/FICS/formula.c b/FICS/formula.c
index 5f9fdb7..dd5ff23 100644
--- a/FICS/formula.c
+++ b/FICS/formula.c
@@ -574,7 +574,7 @@ ChooseClauses(player *who, char *formula)
return ret;
for (i = 0; formula[i] != '\0' && formula[i] != '#'; i++) {
- if (formula[i] != 'f' || (i > 0 && isalnum(formula[i - 1])) ||
+ if ((i > 0 && isalnum(formula[i - 1])) || formula[i] != 'f' ||
!isdigit(formula[i + 1]) ||
sscanf(&formula[i], "f%d", &which) != 1)
continue;
diff --git a/FICS/gameproc.c b/FICS/gameproc.c
index eea5205..cd6398e 100644
--- a/FICS/gameproc.c
+++ b/FICS/gameproc.c
@@ -1834,7 +1834,11 @@ com_goboard(int p, param_list param)
}
on = parray[p].simul_info.onBoard;
- g = parray[p].simul_info.boards[on];
+
+ if ((g = parray[p].simul_info.boards[on]) < 0) {
+ pprintf(p, "Internal error! Unexpected negative value!\n");
+ return COM_OK;
+ }
if (p1 == garray[g].black) {
pprintf(p, "You are already at that board!\n");