From 253750574efcb76a22afef2acc3c1bdf280af028 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 5 Sep 2004 13:23:20 +0000 Subject: [PATCH] =?UTF-8?q?Crash=20wenn=20nicht=20genug=20Parameter=20f?= =?UTF-8?q?=C3=BCr=20einen=20Zauber=20angegeben=20wurden.=20Sicherheitsche?= =?UTF-8?q?ck=20in=20add=5Fspellparam?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/kernel/magic.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/common/kernel/magic.c b/src/common/kernel/magic.c index f5f3e5cee..544d4c083 100644 --- a/src/common/kernel/magic.c +++ b/src/common/kernel/magic.c @@ -1853,6 +1853,10 @@ add_spellparameter(region *target_r, unit *u, const char *syntax, char ** param, int p = 0; const char * c = syntax; spellparameter *par; + int minlen = 0; + + while (*c!=0) if (*c++!='+') ++minlen; + c = syntax; /* mindestens ein Ziel (Ziellose Zauber werden nicht * geparst) */ @@ -1954,7 +1958,7 @@ add_spellparameter(region *target_r, unit *u, const char *syntax, char ** param, /* im Endeffekt waren es evtl. nur p parameter (wegen TEMP) */ par->length = p; - if (fail) { + if (fail || par->length