From f923cb1bf3d0eeb9ca8c566e8a0626ede2bd01b9 Mon Sep 17 00:00:00 2001 From: Egor Date: Tue, 23 Jan 2024 04:19:13 +0200 Subject: [PATCH] move the password rejection later down the line --- src/irc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/irc.c b/src/irc.c index 6d9ab13..1c0bc46 100644 --- a/src/irc.c +++ b/src/irc.c @@ -307,15 +307,12 @@ int processPacket(struct client_data *client, char *source, char *command, int a return 0; // FIXME: error message if (argc < 1) return err_needmoreparams(client, command), sendbuf(client), 0; - if (!(client->umode & UMODE_SECURE)) { - memset(args[0], 0, strlen(args[0])); - return err_passwdmismatch(client), sendbuf(client), 0; - } if (client->pass_reg) { memset(client->pass_reg, 0, strlen(client->pass_reg)); free(client->pass_reg); } client->pass_reg = mystrdup(args[0]); + memset(args[0], 0, strlen(args[0])); if (!client->pass_reg) abort(); } else if(strcmp(command, "OPER") == 0) { if (!is_registered(client)) @@ -1189,7 +1186,7 @@ void newUser(struct client_data *client) { memset(client->pass_reg, 0, strlen(client->pass_reg)); free(client->pass_reg); client->pass_reg = NULL; - if (res == -1) { + if (!(client->umode & UMODE_SECURE) || res == -1) { return err_passwdmismatch(client), sendbuf(client); } else { client->umode |= UMODE_REGISTERED; -- 2.56.0