From 881b6fbd2b6edf78dc572b814f12f0910b80bf26 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 6 Nov 2011 19:09:26 +0100 Subject: [PATCH] Fix add not to crash on negative country number --- src/lib/commands/add.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/commands/add.c b/src/lib/commands/add.c index c89a8c840..5956902c4 100644 --- a/src/lib/commands/add.c +++ b/src/lib/commands/add.c @@ -42,7 +42,6 @@ add(void) int i; char cntryname[sizeof(natp->nat_cnam)]; char pname[sizeof(natp->nat_pnam)]; - natid coun; natid freecn; char prompt[128]; char buf[1024]; @@ -61,20 +60,19 @@ add(void) if (!p || !*p) return RET_SYN; i = atoi(p); - if (i >= MAXNOC) { - pr("Max # countries is %d\n", MAXNOC); + if (i == 0) { + pr("Not allowed to add country #0\n"); return RET_FAIL; } - coun = i; - if (coun == 0) { - pr("Not allowed to add country #0\n"); + natp = getnatp(i); + if (!natp) { + pr("Can't add country #%d\n", i); return RET_FAIL; } - natp = getnatp(coun); p = getstarg(player->argp[2], "Country name? ", buf); if (!p) return RET_SYN; - if (!check_nat_name(p, coun)) + if (!check_nat_name(p, natp->nat_cnum)) return RET_FAIL; strcpy(cntryname, p); p = getstarg(player->argp[3], "Representative? ", buf); -- 2.43.0