diff options
author | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2015-02-22 11:13:47 -0200 |
---|---|---|
committer | André Fabian Silva Delgado <emulatorman@parabola.nu> | 2015-02-22 11:13:47 -0200 |
commit | 347563dcabc0523b027591ddc27266c951da31f2 (patch) | |
tree | b43a6c280e81cadae7a7c101888de74e3a8a65f1 /libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch | |
parent | f4c5c98479fda7669402bc9b505d83e26a591166 (diff) | |
download | abslibre-347563dcabc0523b027591ddc27266c951da31f2.tar.gz abslibre-347563dcabc0523b027591ddc27266c951da31f2.tar.bz2 abslibre-347563dcabc0523b027591ddc27266c951da31f2.zip |
xorg-server-1.17.1-2.parabola1: fix FS#43884 -> https://bugs.archlinux.org/task/43884, and partially FS#43867 -> https://bugs.archlinux.org/task/43867
Diffstat (limited to 'libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch')
-rw-r--r-- | libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch b/libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch new file mode 100644 index 000000000..b96bb7a31 --- /dev/null +++ b/libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch @@ -0,0 +1,30 @@ +diff --git a/os/access.c b/os/access.c +index 28f2d32..fe6e831 100644 +--- a/os/access.c ++++ b/os/access.c +@@ -1390,14 +1390,23 @@ InvalidHost(register struct sockaddr *saddr, int len, ClientPtr client) + else + return 0; + } ++ ++ /* An empty address requires both a NULL addr *and* a zero length ++ * as the address comparison functions call memcmp with both ++ * parameters. Make sure they agree here ++ */ ++ if (addr == NULL) ++ len = 0; ++ if (len == 0) ++ addr = NULL; + for (host = validhosts; host; host = host->next) { + if (host->family == FamilyServerInterpreted) { +- if (addr && siAddrMatch(family, addr, len, host, client)) { ++ if (siAddrMatch(family, addr, len, host, client)) { + return 0; + } + } + else { +- if (addr && addrEqual(family, addr, len, host)) ++ if (addrEqual(family, addr, len, host)) + return 0; + } + |