From 8f6397137cb25f593a581605ed0126ade395813a Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 10 Aug 2020 14:24:39 -0400 Subject: Refactor intercept to use Handlers and fix QUIT w/o message The change to support broken clients with bad line endings broke the interception of QUIT with no message parameter, because the CR is part of the length passed to intercept. --- client.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'client.c') diff --git a/client.c b/client.c index 9246085..dc33288 100644 --- a/client.c +++ b/client.c @@ -332,12 +332,12 @@ static bool intercept(const char *line, size_t len) { len -= sp - line; line = sp; } - if (len >= 4 && !memcmp(line, "CAP ", 4)) return true; - if (len == 4 && !memcmp(line, "QUIT", 4)) return true; - if (len >= 5 && !memcmp(line, "QUIT ", 5)) return true; - if (len >= 7 && !memcmp(line, "NOTICE ", 7)) return true; - if (len >= 7 && !memcmp(line, "TAGMSG ", 7)) return true; - if (len >= 8 && !memcmp(line, "PRIVMSG ", 8)) return true; + for (size_t i = 0; i < ARRAY_LEN(Handlers); ++i) { + size_t n = strlen(Handlers[i].cmd); + if (len < n) continue; + if (memcmp(line, Handlers[i].cmd, n)) continue; + if (len == n || line[n] == ' ' || line[n] == '\r') return true; + } return false; } -- cgit 1.4.1 t' action='/libretls/log/Makefile.am'>
path: root/Makefile.am (unfollow)
Commit message (Expand)Author
2021-03-05build: Add OpenSSL includes to libcompatJune McEnroe
2020-12-15Import LibreSSL 3.3.1June McEnroe
2020-11-24Import LibreSSL 3.3.0June McEnroe
2020-10-22Import LibreSSL 3.2.2June McEnroe
2020-09-29Import LibreSSL 3.2.1June McEnroe
2020-09-29import: Add m4/ax_add_fortify_source.m4June McEnroe
2020-08-05build: Add README.7 to EXTRA_DIST 3.2.0June McEnroe
2020-08-03doc: Indicate that only OpenSSL 1.1.1b and newer workJune McEnroe