From 2d79644bbe6aa91b3082456abea966f6d8683566 Mon Sep 17 00:00:00 2001 From: pk910 Date: Sat, 7 Jan 2012 21:07:50 +0100 Subject: [PATCH] fixed crash if some strange admins simul bots in unregistered channels --- src/bot_NeonHelp.c | 5 ++++- src/bot_NeonServ.c | 5 ++++- src/bot_NeonSpam.c | 5 ++++- src/bots.c | 5 ++++- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/bot_NeonHelp.c b/src/bot_NeonHelp.c index a5eddd6..ab241c1 100644 --- a/src/bot_NeonHelp.c +++ b/src/bot_NeonHelp.c @@ -91,7 +91,10 @@ static void neonhelp_trigger_callback(int clientid, struct ChanNode *chan, char } printf_mysql_query("SELECT `trigger`, `defaulttrigger` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chan->channel_id, BOTID); res = mysql_use(); - row = mysql_fetch_row(res); + if(!(row = mysql_fetch_row(res))) { + strcpy(trigger, "!"); + return; + } if(row[0] && *row[0]) strcpy(trigger, row[0]); else diff --git a/src/bot_NeonServ.c b/src/bot_NeonServ.c index 46074d4..3700d4b 100644 --- a/src/bot_NeonServ.c +++ b/src/bot_NeonServ.c @@ -425,7 +425,10 @@ static void neonserv_trigger_callback(int clientid, struct ChanNode *chan, char } printf_mysql_query("SELECT `trigger`, `defaulttrigger` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chan->channel_id, BOTID); res = mysql_use(); - row = mysql_fetch_row(res); + if(!(row = mysql_fetch_row(res))) { + strcpy(trigger, "+"); + return; + } if(row[0] && *row[0]) strcpy(trigger, row[0]); else diff --git a/src/bot_NeonSpam.c b/src/bot_NeonSpam.c index 7d7dc1f..10984d1 100644 --- a/src/bot_NeonSpam.c +++ b/src/bot_NeonSpam.c @@ -142,7 +142,10 @@ static void neonspam_trigger_callback(int clientid, struct ChanNode *chan, char } printf_mysql_query("SELECT `trigger`, `defaulttrigger` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '%d'", chan->channel_id, BOTID); res = mysql_use(); - row = mysql_fetch_row(res); + if(!(row = mysql_fetch_row(res))) { + strcpy(trigger, "~"); + return; + } if(row[0] && *row[0]) strcpy(trigger, row[0]); else diff --git a/src/bots.c b/src/bots.c index 3efc27e..c9b0616 100644 --- a/src/bots.c +++ b/src/bots.c @@ -87,7 +87,10 @@ static void zero_bots_trigger_callback(int clientid, struct ChanNode *chan, char } printf_mysql_query("SELECT `trigger`, `defaulttrigger` FROM `bot_channels` LEFT JOIN `bots` ON `botid` = `bots`.`id` WHERE `chanid` = '%d' AND `botclass` = '0' AND `botid` = '%d'", chan->channel_id, clientid); res = mysql_use(); - row = mysql_fetch_row(res); + if(!(row = mysql_fetch_row(res))) { + strcpy(trigger, ""); + return; + } if(row[0] && *row[0]) strcpy(trigger, row[0]); else -- 2.20.1