summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKenpachi Developer <Kenpachi.Developer@gmx.de>2020-11-14 09:12:18 +0100
committerJesusaves <cpntb1@ymail.com>2021-02-14 15:54:52 -0300
commit77aef58085f166d0ce0b3b06d81dde9a35a05e0d (patch)
tree82f85c6d7d99717093bc2b3d5ad0d6ded6b7cb9a /src
parenta1bb4008e58b92e2af5099570a723e37ea138d0b (diff)
downloadhercules-77aef58085f166d0ce0b3b06d81dde9a35a05e0d.tar.gz
hercules-77aef58085f166d0ce0b3b06d81dde9a35a05e0d.tar.bz2
hercules-77aef58085f166d0ce0b3b06d81dde9a35a05e0d.tar.xz
hercules-77aef58085f166d0ce0b3b06d81dde9a35a05e0d.zip
Add check for valid item amount to BUILDIN(rodex_sendmail)
Diffstat (limited to 'src')
-rw-r--r--src/map/script.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 1f49f04b9..46e5528e5 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -25278,6 +25278,18 @@ static BUILDIN(rodex_sendmail)
return false;
}
+ if (!data_isint(script_getdata(st, param + 1))) {
+ ShowError("script:rodex_sendmail: Passed amount for item %d is not a number!\n", i + 1);
+ return false;
+ }
+
+ int amount = script_getnum(st, param + 1);
+
+ if (amount < 1 || amount > min(MAX_AMOUNT, SHRT_MAX)) {
+ ShowError("script:rodex_sendmail: Invalid amount %d passed for item %d!\n", amount, i + 1);
+ return false;
+ }
+
++item_count;
if (data_isstring(script_getdata(st, param)) == false) {
int itemid = script_getnum(st, param);
@@ -25295,7 +25307,7 @@ static BUILDIN(rodex_sendmail)
}
msg.items[i].item.nameid = idata->nameid;
- msg.items[i].item.amount = script_getnum(st, (param + 1));
+ msg.items[i].item.amount = amount;
msg.items[i].item.identify = 1;
++i;