summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorKenpachi Developer <Kenpachi.Developer@gmx.de>2020-11-14 08:50:48 +0100
committerJesusaves <cpntb1@ymail.com>2021-02-14 15:55:07 -0300
commit62b161fdb13bf6336d919ff9088548b652761e05 (patch)
treeabbab53a0ffc9004e9c2bdd8bc988e4642106580 /src/map
parent77aef58085f166d0ce0b3b06d81dde9a35a05e0d (diff)
downloadhercules-62b161fdb13bf6336d919ff9088548b652761e05.tar.gz
hercules-62b161fdb13bf6336d919ff9088548b652761e05.tar.bz2
hercules-62b161fdb13bf6336d919ff9088548b652761e05.tar.xz
hercules-62b161fdb13bf6336d919ff9088548b652761e05.zip
Add check for receiver ID is in valid range to rodex_sendmail_sub()
Diffstat (limited to 'src/map')
-rw-r--r--src/map/script.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/map/script.c b/src/map/script.c
index 46e5528e5..a63f1e835 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -25222,11 +25222,24 @@ static BUILDIN(navigateto)
static bool rodex_sendmail_sub(struct script_state *st, struct rodex_message *msg)
{
const char *sender_name, *title, *body;
+ const char *func_name = script->getfuncname(st);
+ int receiver_id = script_getnum(st, 2);
- if (strcmp(script->getfuncname(st), "rodex_sendmail_acc") == 0 || strcmp(script->getfuncname(st), "rodex_sendmail_acc2") == 0)
- msg->receiver_accountid = script_getnum(st, 2);
- else
- msg->receiver_id = script_getnum(st, 2);
+ if (strcmp(func_name, "rodex_sendmail_acc") == 0 || strcmp(func_name, "rodex_sendmail_acc2") == 0) {
+ if (receiver_id < START_ACCOUNT_NUM || receiver_id > END_ACCOUNT_NUM) {
+ ShowError("script:rodex_sendmail: Invalid receiver account ID %d passed!\n", receiver_id);
+ return false;
+ }
+
+ msg->receiver_accountid = receiver_id;
+ } else {
+ if (receiver_id < START_CHAR_NUM) {
+ ShowError("script:rodex_sendmail: Invalid receiver character ID %d passed!\n", receiver_id);
+ return false;
+ }
+
+ msg->receiver_id = receiver_id;
+ }
sender_name = script_getstr(st, 3);
if (strlen(sender_name) >= NAME_LENGTH) {