From: Markus Armbruster Date: Sun, 30 Jan 2011 15:12:14 +0000 (+0100) Subject: Oops on invalid actor and victim arguments in nreport() X-Git-Tag: v4.3.27~159 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=05b3e1b8d8da293cac10104aa9c5dbb5638b0018 Oops on invalid actor and victim arguments in nreport() Replaces the existing, silent recovery from invalid victim argument. --- diff --git a/src/lib/subs/nreport.c b/src/lib/subs/nreport.c index 91ee47832..13216b88b 100644 --- a/src/lib/subs/nreport.c +++ b/src/lib/subs/nreport.c @@ -59,12 +59,13 @@ void nreport(natid actor, int event, natid victim, int times) { int nice; - struct natstr *natp; struct newscache *ncp; if (CANT_HAPPEN((unsigned)event > N_MAX_VERB || rpt[event].r_newstory[0] == rpt[0].r_newstory[0])) return; + if (CANT_HAPPEN(actor >= MAXNOC || victim >= MAXNOC)) + return; ncp = ncache(actor, event, victim, times); putnews(ncp->id, &ncp->news); @@ -83,9 +84,7 @@ nreport(natid actor, int event, natid victim, int times) return; if (!chance((double)-nice * times / 20.0)) return; - if (!(natp = getnatp(victim))) - return; - if (getrel(natp, actor) < HOSTILE) + if (getrel(getnatp(victim), actor) < HOSTILE) return; setrel(victim, actor, HOSTILE);