On Sun, Feb 26, 2023 at 3:53 PM <fo...@dnmx.org> wrote:
>
> I did a git clone like it says on the main Quark web-site, and doing `mandoc
> -a quark.1` it shows '2020-09-27', and that's what I am using.
> Unless that's wrong and/or there's another way to get the version number -
> I'd
> like to know.

Ah i see. Running 'git clone' as described on the website does
actually download the latest version.
That date is simply when the last major changes where made to the
manpage, not quark itself.
If you run 'git log' you'll see the date of the most recent (topmost)
change to the source code.

> > which meant that quark would likely drop legitimate connections under load
> (IP address comparison check was the wrong way 'round). I don't think the fix
> ever got merged ...
>
> That's interesting. Like I said - 2020 version, is it fixed in newer commits,
> should I test that out as well?
>
> Because increasing -s and -t seems to do jack shit as I already stated :d

The bug still hasn't been fixed in the latest version.
I've attached a bug fix patch to this mail that you can use, but I'm not 100%
sure that this bug is responsible for your problem.
To apply the patch, simply drop the .diff file in your quark source
folder, then run
    git am quark-addr_cmp_fix-20230226.diff
and then rebuild & reinstall with
    make
    make install
From 0fc2f684e79795dcc4cbd9888a0dd30d78aff36f Mon Sep 17 00:00:00 2001
From: Thomas Oltmann <thomas.oltmann....@gmail.com>
Date: Sun, 26 Feb 2023 17:38:43 +0100
Subject: [PATCH] Fix inverted conditional in sock_same_addr()

---
 sock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sock.c b/sock.c
index ecb73ef..e6e7754 100644
--- a/sock.c
+++ b/sock.c
@@ -198,7 +198,7 @@ sock_same_addr(const struct sockaddr_storage *sa1, const struct sockaddr_storage
 	case AF_INET6:
 		return memcmp(((struct sockaddr_in6 *)sa1)->sin6_addr.s6_addr,
 		              ((struct sockaddr_in6 *)sa2)->sin6_addr.s6_addr,
-		              sizeof(((struct sockaddr_in6 *)sa1)->sin6_addr.s6_addr));
+		              sizeof(((struct sockaddr_in6 *)sa1)->sin6_addr.s6_addr)) == 0;
 	case AF_INET:
 		return ntohl(((struct sockaddr_in *)sa1)->sin_addr.s_addr) ==
 		       ntohl(((struct sockaddr_in *)sa2)->sin_addr.s_addr);
-- 
2.39.1

Reply via email to