diff options
author | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-26 20:10:44 +0000 |
---|---|---|
committer | rburchell <rburchell@5417fbe8-f217-4b02-8779-1006273d7864> | 2009-01-26 20:10:44 +0000 |
commit | 6c51b17ef14b57f8715c840c253c99eef3683bde (patch) | |
tree | 2a65ed2d7f000b6ff682a7d63a48e4f34f3ef838 /src/mysql.c | |
parent | 5a191ce5a64bb2b626d6a79c5d63e589f55d9dad (diff) |
Don't allow an empty ident when reading HS vident. Rob, this needs review before I want to push it to SVN.
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/stable@1936 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/mysql.c')
-rw-r--r-- | src/mysql.c | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/src/mysql.c b/src/mysql.c index 8f38bacda..44c8b307c 100644 --- a/src/mysql.c +++ b/src/mysql.c @@ -1147,29 +1147,37 @@ int db_mysql_load_bs_dbase(void) int db_mysql_load_hs_dbase(void) { int ret; - int32 time; + char *vident = NULL; + int32 time; - if (!do_mysql) - return 0; + if (!do_mysql) + return 0; - ret = db_mysql_try("SELECT nick, vident, vhost, creator, `time` " - "FROM anope_hs_core " - "WHERE active = 1"); + ret = db_mysql_try("SELECT nick, vident, vhost, creator, `time` " + "FROM anope_hs_core " + "WHERE active = 1"); - if (!ret) - return 0; + if (!ret) + return 0; - mysql_res = mysql_use_result(mysql); + mysql_res = mysql_use_result(mysql); - while ((mysql_row = mysql_fetch_row(mysql_res))) { - time = strtol(mysql_row[4], (char **) NULL, 10); - addHostCore(mysql_row[0], mysql_row[1], mysql_row[2], mysql_row[3], - time); - } + while ((mysql_row = mysql_fetch_row(mysql_res))) + { + /* FIX: we can never allow an empty vident, it must *always* be NULL. */ + vident = mysql_row[1]; + if (!strcmp(vident, "")) + { + vident = NULL; + } - mysql_free_result(mysql_res); + time = strtol(mysql_row[4], (char **) NULL, 10); + addHostCore(mysql_row[0], NULL, mysql_row[2], mysql_row[3], time); + } - return 1; + mysql_free_result(mysql_res); + + return 1; } int db_mysql_load_news(void) |