summaryrefslogtreecommitdiff
path: root/libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch
diff options
context:
space:
mode:
authorAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-02-22 11:13:47 -0200
committerAndré Fabian Silva Delgado <emulatorman@parabola.nu>2015-02-22 11:13:47 -0200
commit347563dcabc0523b027591ddc27266c951da31f2 (patch)
treeb43a6c280e81cadae7a7c101888de74e3a8a65f1 /libre/xorg-server/os-access-fix-regression-in-server-interpreted-auth.patch
parentf4c5c98479fda7669402bc9b505d83e26a591166 (diff)
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.patch30
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;
+ }
+