Commit Diff


commit - 7cca2fca71ef729316028fb59775a4151cfa5f55
commit + a80e33d2dae5ed84da5739d99dc30a0b51e5d085
blob - e93dd5b129ad990216e1cf939d01bbf925251775
blob + f82a7c91013fc3fa7826be286705c0e50aba1246
--- FICS/lists.c
+++ FICS/lists.c
@@ -306,8 +306,14 @@ list_addsub(int p, char *list, char *who, int addsub)
 				return COM_OK;
 			member = who; // allow sub removed/renamed player
 			loadme = 0;
-		} else
-			member = parray[p1].name;
+		} else {
+			if (p1 < 0) {
+				warnx("%s: unexpected negative number",
+				    __func__);
+				return COM_OK;
+			} else
+				member = parray[p1].name;
+		}
 	} else {
 		member = who;
 	}
blob - 1b1eab86953fd34b536f5512bdb81c86430663e7
blob + 7288bf0ab65626e62f4ddaff30386906ec9c6a18
--- FICS/matchproc.c
+++ FICS/matchproc.c
@@ -991,7 +991,10 @@ com_match(int p, param_list param)
 		}
 	} else {
 		ppend = pendto;
-		p1pend = player_find_pendfrom(p1, p, PEND_MATCH);
+		if ((p1pend = player_find_pendfrom(p1, p, PEND_MATCH)) < 0) {
+			pprintf(p, "Unable to find pending match\n");
+			return COM_OK;
+		}
 	}
 
 	parray[p].p_to_list[ppend].param1 = wt;