Fix add not to crash on negative country number
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Nov 2011 18:09:26 +0000 (19:09 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 29 Dec 2011 10:47:06 +0000 (11:47 +0100)
src/lib/commands/add.c

index c89a8c840fec9ba248a5e44b750deacce75762be..5956902c4ec437a7418c4d682ed13f40032b099d 100644 (file)
@@ -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);