From da1c3bc287b33b27277030d0bd7b9bf0753228be Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sun, 27 Jan 2002 19:07:43 +0000 Subject: [PATCH] updates. --- CHANGES | 9 +++++++++ apps/silcd/command.c | 8 ++++++-- apps/silcd/packet_receive.c | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index 678aaa37..b33b5281 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,12 @@ +Sun Jan 27 21:04:19 EET 2002 Pekka Riikonen + + * Check for NULL socket pointer in the function + silc_server_packet_send_to_channel_real. Affected file + silcd/packet_send.c. + + * Fixed the BAN notify handling to correctly remove ban + list. Affected file silcd/packet_receive.c. + Sat Jan 26 23:01:03 EET 2002 Pekka Riikonen * Fixed some header addition to Toolkit distribution in diff --git a/apps/silcd/command.c b/apps/silcd/command.c index d413a946..ab4d5cd0 100644 --- a/apps/silcd/command.c +++ b/apps/silcd/command.c @@ -4823,7 +4823,11 @@ SILC_SERVER_CMD_FUNC(ban) } /* Get entry to the channel user list */ - silc_hash_table_find(channel->user_list, client, NULL, (void *)&chl); + if (!silc_hash_table_find(channel->user_list, client, NULL, (void *)&chl)) { + silc_server_command_send_status_reply(cmd, SILC_COMMAND_BAN, + SILC_STATUS_ERR_NOT_ON_CHANNEL); + goto out; + } /* The client must be at least channel operator. */ if (!(chl->mode & SILC_CHANNEL_UMODE_CHANOP)) { @@ -4884,7 +4888,7 @@ SILC_SERVER_CMD_FUNC(ban) 2, id, id_len, 3, channel->ban_list, channel->ban_list ? - strlen(channel->ban_list) - 1 : 0); + strlen(channel->ban_list) : 0); silc_server_packet_send(server, cmd->sock, SILC_PACKET_COMMAND_REPLY, 0, packet->data, packet->len, FALSE); diff --git a/apps/silcd/packet_receive.c b/apps/silcd/packet_receive.c index 6e8bf99a..e93774ae 100644 --- a/apps/silcd/packet_receive.c +++ b/apps/silcd/packet_receive.c @@ -1143,7 +1143,7 @@ do { \ if (tmp && channel->ban_list) { char *start, *end, *n; - if (!strcmp(channel->ban_list, tmp)) { + if (!strncmp(channel->ban_list, tmp, strlen(channel->ban_list) - 1)) { silc_free(channel->ban_list); channel->ban_list = NULL; } else { -- 2.24.0