From 1aa55242d929fd85ceaa462348e3ecb2636487bc Mon Sep 17 00:00:00 2001
From: Ben Longbons <b.r.longbons@gmail.com>
Date: Thu, 28 Aug 2014 16:13:33 -0700
Subject: Prevent skills from being set out of bounds by privileged users

---
 src/map/atcommand.cpp | 2 ++
 src/map/script.cpp    | 2 ++
 2 files changed, 4 insertions(+)

(limited to 'src')

diff --git a/src/map/atcommand.cpp b/src/map/atcommand.cpp
index 342f6ef..0d70b36 100644
--- a/src/map/atcommand.cpp
+++ b/src/map/atcommand.cpp
@@ -4552,6 +4552,8 @@ ATCE atcommand_magic_info(Session *s, dumb_ptr<map_session_data>,
 static
 void set_skill(dumb_ptr<map_session_data> sd, SkillID i, int level)
 {
+    level = std::min(level, MAX_SKILL_LEVEL);
+    level = std::max(level, 0);
     sd->status.skill[i].lv = level;
 }
 
diff --git a/src/map/script.cpp b/src/map/script.cpp
index 4aeb7d9..40dfc0e 100644
--- a/src/map/script.cpp
+++ b/src/map/script.cpp
@@ -2414,6 +2414,8 @@ void builtin_setskill(ScriptState *st)
     level = conv_num(st, &AARGO2(3));
     sd = script_rid2sd(st);
 
+    level = std::min(level, MAX_SKILL_LEVEL);
+    level = std::max(level, 0);
     sd->status.skill[id].lv = level;
     clif_skillinfoblock(sd);
 }
-- 
cgit v1.2.3-70-g09d2