Skip to content

Commit

Permalink
Prevent C++ exception from escaping from is_user_banned()
Browse files Browse the repository at this point in the history
(cherry-picked from commit 0b95653)
  • Loading branch information
loonycyborg committed Oct 7, 2018
1 parent f1e1a99 commit 969fb71
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/server/forum_user_handler.cpp
Expand Up @@ -182,9 +182,14 @@ fuh::BAN_TYPE fuh::user_is_banned(const std::string& name, const std::string& ad
// for the time being.
//

if(!addr.empty() && prepared_statement<bool>("SELECT 1 FROM `" + db_banlist_table_ + "` WHERE UPPER(ban_ip) = UPPER(?) AND ban_exclude = 0", addr)) {
LOG_UH << "User '" << name << "' ip " << addr << " banned by IP address\n";
return BAN_IP;
try {
if(!addr.empty() && prepared_statement<bool>("SELECT 1 FROM `" + db_banlist_table_ + "` WHERE UPPER(ban_ip) = UPPER(?) AND ban_exclude = 0", addr)) {
LOG_UH << "User '" << name << "' ip " << addr << " banned by IP address\n";
return BAN_IP;
}
} catch(const sql_error& e) {
ERR_UH << "Could not check forum bans on address '" << addr << "' :" << e.message << '\n';
return BAN_NONE;
}

if(!user_exists(name)) return BAN_NONE;
Expand Down

0 comments on commit 969fb71

Please sign in to comment.