From: pk910 Date: Sat, 28 Jan 2012 17:16:36 +0000 (+0100) Subject: fixed NULL pointer in cmd_unregister && fixed crash in QServer.c X-Git-Tag: v5.3~42 X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=55fb605f33a031c93f6bd4c72b72ab00d571c26d fixed NULL pointer in cmd_unregister && fixed crash in QServer.c --- diff --git a/src/QServer.c b/src/QServer.c index fd0e8e6..f8a98a1 100644 --- a/src/QServer.c +++ b/src/QServer.c @@ -163,6 +163,8 @@ static void qserver_parse(struct QServerClient *client, char *line, int len) { } void qserver_loop() { + if(!get_int_field("QServer.enabled")) + return; struct timeval tv; struct QServerClient *client, *next, *prev = NULL; int ret; @@ -204,14 +206,15 @@ void qserver_loop() { //new connection struct sockaddr_in cli_addr; socklen_t clilen; + client = malloc(sizeof(*client)); + clilen = sizeof(cli_addr); + client->sock = accept(server_sockfd, (struct sockaddr *) &cli_addr, &clilen); + client->flags = 0; if(qserver_clientcount >= QSERVER_MAXCLIENTS) { qserver_put(client, "E :Maximum QServer Connections reached"); close(client->sock); + free(client); } else { - client = malloc(sizeof(*client)); - clilen = sizeof(cli_addr); - client->sock = accept(server_sockfd, (struct sockaddr *) &cli_addr, &clilen); - client->flags = 0; client->lastmsg = now; client->bufferpos = 0; client->references = 0; diff --git a/src/cmd_global_unregister.c b/src/cmd_global_unregister.c index 43dab20..206e763 100644 --- a/src/cmd_global_unregister.c +++ b/src/cmd_global_unregister.c @@ -56,10 +56,10 @@ CMD_BIND(global_cmd_unregister) { if(bot->clientid == botid) break; } + printf_mysql_query("DELETE FROM `bot_channels` WHERE `id` = '%s'", row[1]); + reply(getTextBot(), user, "NS_UNREGISTER_DONE", channel); if(bot && strcmp(row[2], "1")) { putsock(bot, "PART %s :Channel unregistered.", channel); } - printf_mysql_query("DELETE FROM `bot_channels` WHERE `id` = '%s'", row[1]); - reply(getTextBot(), user, "NS_UNREGISTER_DONE", channel); logEvent(event); }