Browse Source

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://svn.code.sf.net/p/rathena/svn/trunk@16369 54d463be-8e91-2dee-dedb-b68131a5f0ec
shennetsind 13 years ago
parent
commit
7207c06aeb
1 changed files with 7 additions and 7 deletions
  1. 7 7
      src/map/mail.c

+ 7 - 7
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);