From 0cf52e88ea2779d00c64e36b33e606d658682136 Mon Sep 17 00:00:00 2001 From: Haru Date: Fri, 29 Nov 2013 00:51:32 +0100 Subject: Corrected an uninitialized variable when adding an item - The .favorite field of newly added inventory items wasn't correctly initialized to zero, potentially causing data loss (fixes bugreport:7854, thanks to Vincent, GrumpyPanda). Signed-off-by: Haru --- src/map/mob.c | 2 +- src/map/pc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/map') diff --git a/src/map/mob.c b/src/map/mob.c index 777518d87..1e197756e 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2448,7 +2448,6 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { if(mvp_sd && md->db->mexp > 0 && !md->special_state.ai) { int log_mvp[2] = {0}; unsigned int mexp; - struct item item; double exp; //mapflag: noexp check [Lorky] @@ -2471,6 +2470,7 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) { /* pose them randomly in the list -- so on 100% drop servers it wont always drop the same item */ int mdrop_id[MAX_MVP_DROP]; int mdrop_p[MAX_MVP_DROP]; + struct item item; memset(&mdrop_id,0,MAX_MVP_DROP*sizeof(int)); diff --git a/src/map/pc.c b/src/map/pc.c index b5fa9268e..6120ba033 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -3997,9 +3997,11 @@ int pc_additem(struct map_session_data *sd,struct item *item_data,int amount,e_l return 4; memcpy(&sd->status.inventory[i], item_data, sizeof(sd->status.inventory[0])); - // clear equips field first, just in case + // clear equip and favorite fields first, just in case if( item_data->equip ) sd->status.inventory[i].equip = 0; + if( item_data->favorite ) + sd->status.inventory[i].favorite = 0; sd->status.inventory[i].amount = amount; sd->inventory_data[i] = data; -- cgit v1.2.3-60-g2f50