map<std::string, RGWSubUser>::iterator siter;
siter = subuser_map->find(subuser_str);
-
+ if (siter == subuser_map->end()){
+ set_err_msg(err_msg, "subuser not found: " + subuser_str);
+ return -EINVAL;
+ }
if (!op_state.has_existing_subuser()) {
set_err_msg(err_msg, "subuser not found: " + subuser_str);
return -EINVAL;
}
// always purge all associate keys
- user->keys.remove_subuser_keys(op_state, &subprocess_msg, defer_user_update);
+ user->keys.remove_subuser_keys(op_state, &subprocess_msg, true);
// remove the subuser from the user info
subuser_map->erase(siter);