Skip to content

Commit

Permalink
Inventory manager style cleanup and further checks
Browse files Browse the repository at this point in the history
  • Loading branch information
est31 committed Jul 1, 2015
1 parent b2160bc commit 2e44873
Showing 1 changed file with 23 additions and 16 deletions.
39 changes: 23 additions & 16 deletions src/inventorymanager.cpp
Expand Up @@ -172,16 +172,16 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
Inventory *inv_from = mgr->getInventory(from_inv);
Inventory *inv_to = mgr->getInventory(to_inv);

if(!inv_from){
infostream<<"IMoveAction::apply(): FAIL: source inventory not found: "
<<"from_inv=\""<<from_inv.dump()<<"\""
<<", to_inv=\""<<to_inv.dump()<<"\""<<std::endl;
if (!inv_from) {
infostream << "IMoveAction::apply(): FAIL: source inventory not found: "
<< "from_inv=\""<<from_inv.dump() << "\""
<< ", to_inv=\"" << to_inv.dump() << "\"" << std::endl;
return;
}
if(!inv_to){
infostream<<"IMoveAction::apply(): FAIL: destination inventory not found: "
<<"from_inv=\""<<from_inv.dump()<<"\""
<<", to_inv=\""<<to_inv.dump()<<"\""<<std::endl;
if (!inv_to) {
infostream << "IMoveAction::apply(): FAIL: destination inventory not found: "
<< "from_inv=\"" << from_inv.dump() << "\""
<< ", to_inv=\"" << to_inv.dump() << "\"" << std::endl;
return;
}

Expand All @@ -191,16 +191,16 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
/*
If a list doesn't exist or the source item doesn't exist
*/
if(!list_from){
infostream<<"IMoveAction::apply(): FAIL: source list not found: "
<<"from_inv=\""<<from_inv.dump()<<"\""
<<", from_list=\""<<from_list<<"\""<<std::endl;
if (!list_from) {
infostream << "IMoveAction::apply(): FAIL: source list not found: "
<< "from_inv=\"" << from_inv.dump() << "\""
<< ", from_list=\"" << from_list << "\"" << std::endl;
return;
}
if(!list_to){
infostream<<"IMoveAction::apply(): FAIL: destination list not found: "
<<"to_inv=\""<<to_inv.dump()<<"\""
<<", to_list=\""<<to_list<<"\""<<std::endl;
if (!list_to) {
infostream << "IMoveAction::apply(): FAIL: destination list not found: "
<< "to_inv=\""<<to_inv.dump() << "\""
<< ", to_list=\"" << to_list << "\"" << std::endl;
return;
}

Expand Down Expand Up @@ -246,6 +246,13 @@ void IMoveAction::apply(InventoryManager *mgr, ServerActiveObject *player, IGame
move_somewhere = true;
return;
}

if ((u16)to_i > list_to->getSize()) {
infostream << "IMoveAction::apply(): FAIL: destination index out of bounds: "
<< "to_i=" << to_i
<< ", size=" << list_to->getSize() << std::endl;
return;
}
/*
Do not handle rollback if both inventories are that of the same player
*/
Expand Down

0 comments on commit 2e44873

Please sign in to comment.