From ff6944d6d2d9c41b543bbfba163cfd0b4d44c888 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Tue, 3 Jul 2012 06:54:17 +0000 Subject: bugreport:2638 Fixed exploit which allowed items to be mailed while trading/in-npc/etc. (could cause item dupe on badly scripted npcs). super mega ultra plus master thanks to GM Takumirai. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16369 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/mail.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/map/mail.c b/src/map/mail.c index b839c3d1f..ce099d0a1 100644 --- a/src/map/mail.c +++ b/src/map/mail.c @@ -59,10 +59,12 @@ int mail_removezeny(struct map_session_data *sd, short flag) return 1; } -unsigned char mail_setitem(struct map_session_data *sd, int idx, int amount) -{ - if( idx == 0 ) - { // Zeny Transfer +unsigned char mail_setitem(struct map_session_data *sd, int idx, int amount) { + + if( pc_istrading(sd) ) + return 1; + + if( idx == 0 ) { // Zeny Transfer if( amount < 0 || !pc_can_give_items(sd) ) return 1; @@ -72,9 +74,7 @@ unsigned char mail_setitem(struct map_session_data *sd, int idx, int amount) sd->mail.zeny = amount; // clif_updatestatus(sd, SP_ZENY); return 0; - } - else - { // Item Transfer + } else { // Item Transfer idx -= 2; mail_removeitem(sd, 0); -- cgit v1.2.3-70-g09d2