diff options
author | June McEnroe <june@causal.agency> | 2019-11-04 18:50:54 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-11-04 18:52:16 -0500 |
commit | 9c643efab52eef907c6e8a482d95fa1a1952e73b (patch) | |
tree | ec043c12f43bc23e8da329e65096aea676006a73 | |
parent | Don't set directory modes on install (diff) | |
download | pounce-9c643efab52eef907c6e8a482d95fa1a1952e73b.tar.gz pounce-9c643efab52eef907c6e8a482d95fa1a1952e73b.zip |
Zero PASS parameter
-rw-r--r-- | bounce.h | 6 | ||||
-rw-r--r-- | client.c | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/bounce.h b/bounce.h index 434a1f8..129dd7b 100644 --- a/bounce.h +++ b/bounce.h @@ -45,9 +45,9 @@ bool verbose; enum { ParamCap = 15 }; struct Message { - const char *origin; - const char *cmd; - const char *params[ParamCap]; + char *origin; + char *cmd; + char *params[ParamCap]; }; static inline struct Message parse(char *line) { diff --git a/client.c b/client.c index 35faa4b..79f55ae 100644 --- a/client.c +++ b/client.c @@ -23,6 +23,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <strings.h> #include <sysexits.h> #include <tls.h> #include <unistd.h> @@ -127,7 +128,7 @@ static void handleUser(struct Client *client, struct Message *msg) { static void handlePass(struct Client *client, struct Message *msg) { if (!clientPass) return; if (!msg->params[0]) { - passRequired(client); + client->error = true; return; } if (!strcmp(crypt(msg->params[0], clientPass), clientPass)) { @@ -136,6 +137,7 @@ static void handlePass(struct Client *client, struct Message *msg) { } else { passRequired(client); } + explicit_bzero(msg->params[0], strlen(msg->params[0])); } static void handleCap(struct Client *client, struct Message *msg) { |