From 05b3e1b8d8da293cac10104aa9c5dbb5638b0018 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 30 Jan 2011 16:12:14 +0100 Subject: [PATCH] Oops on invalid actor and victim arguments in nreport() Replaces the existing, silent recovery from invalid victim argument. --- src/lib/subs/nreport.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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); -- 2.43.0