From 3739a9b3033ccaf139a296f8647f7c6cddc9db75 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Mon, 26 Sep 2016 20:43:23 +0200 Subject: xserver: use own copy of XKBsrv.h header just like upstream does --- nx-X11/programs/Xserver/os/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index a6982a3e2..5e9c62c74 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -141,7 +141,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #endif #ifdef XKB -#include +#include #endif #ifdef XCSECURITY #define _SECURITY_SERVER -- cgit v1.2.3 From b60f66bb9df6cbde57bcfb335701c175e0df2c74 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Mon, 26 Sep 2016 23:00:04 +0200 Subject: replace transport.c link by xstrans.c Just like upstream does --- nx-X11/programs/Xserver/os/Imakefile | 8 +++----- nx-X11/programs/Xserver/os/access.c | 3 +++ nx-X11/programs/Xserver/os/connection.c | 12 +++--------- nx-X11/programs/Xserver/os/io.c | 3 +++ nx-X11/programs/Xserver/os/utils.c | 3 +++ nx-X11/programs/Xserver/os/xdmauth.c | 3 +++ nx-X11/programs/Xserver/os/xdmcp.c | 4 ++++ nx-X11/programs/Xserver/os/xstrans.c | 17 +++++++++++++++++ 8 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 nx-X11/programs/Xserver/os/xstrans.c (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/os/Imakefile b/nx-X11/programs/Xserver/os/Imakefile index b1873b8fd..047ad6615 100644 --- a/nx-X11/programs/Xserver/os/Imakefile +++ b/nx-X11/programs/Xserver/os/Imakefile @@ -114,12 +114,12 @@ BOOTSTRAPCFLAGS = SRCS = WaitFor.c access.c connection.c io.c $(COLOR_SRCS) \ osinit.c utils.c log.c auth.c mitauth.c secauth.c \ $(XDMAUTHSRCS) $(RPCSRCS) xdmcp.c OtherSources \ - transport.c $(SNPRINTF_SRCS) $(STRLCAT_SRCS) \ + xstrans.c $(SNPRINTF_SRCS) $(STRLCAT_SRCS) \ xprintf.c OBJS = WaitFor.o access.o connection.o io.o $(COLOR_OBJS) \ osinit.o utils.o log.o auth.o mitauth.o secauth.o \ $(XDMAUTHOBJS) $(RPCOBJS) xdmcp.o OtherObjects \ - transport.o $(SNPRINTF_OBJS) $(STRLCAT_OBJS) \ + xstrans.o $(SNPRINTF_OBJS) $(STRLCAT_OBJS) \ xprintf.o #if UseMemLeak @@ -135,7 +135,7 @@ BOOTSTRAPCFLAGS = #if HasPam && HasPamMisc PAM_DEFINES = -DUSE_PAM #endif - DEFINES = -DXSERV_t -DTRANS_SERVER $(CONNECTION_FLAGS) $(MEM_DEFINES) \ + DEFINES = $(CONNECTION_FLAGS) $(MEM_DEFINES) \ $(XDMAUTHDEFS) $(RPCDEFS) $(SIGNAL_DEFINES) $(OS_DEFINES) \ $(RGB_DEFINES) $(GETPEER_DEFINES) \ $(RANDOM_DEFINES) $(BUGMSG) $(XTRANS_FAILDEFINES) $(NX_DEFINES) @@ -172,8 +172,6 @@ SpecialCObjectRule(auth,$(ICONFIGFILES),$(XDMCP_DEFINES)) SpecialCObjectRule(xdmauth,$(ICONFIGFILES),$(XDMCP_DEFINES)) SpecialCObjectRule(xdmcp,$(ICONFIGFILES),$(SOCK_DEFINES) $(XDMCP_DEFINES)) SpecialCObjectRule(connection,$(ICONFIGFILES),$(SOCK_DEFINES) $(XDMCP_DEFINES)) -SpecialCObjectRule(transport,$(ICONFIGFILES),$(TRANS_INCLUDES) $(CONN_DEFINES) $(SOCK_DEFINES)) -LinkSourceFile(transport.c,$(TRANSCOMMSRC)) SpecialCObjectRule(osinit,$(ICONFIGFILES),$(ADM_DEFINES)) SpecialCObjectRule(WaitFor,$(ICONFIGFILES),$(EXT_DEFINES)) SpecialCObjectRule(io,$(ICONFIGFILES),$(EXT_DEFINES)) diff --git a/nx-X11/programs/Xserver/os/access.c b/nx-X11/programs/Xserver/os/access.c index db1b9b2c8..f9b9953bc 100644 --- a/nx-X11/programs/Xserver/os/access.c +++ b/nx-X11/programs/Xserver/os/access.c @@ -64,6 +64,9 @@ SOFTWARE. #include #include +#define XSERV_t +#define TRANS_SERVER +#define TRANS_REOPEN #include #include #include diff --git a/nx-X11/programs/Xserver/os/connection.c b/nx-X11/programs/Xserver/os/connection.c index 4f635fa7e..9cba17864 100644 --- a/nx-X11/programs/Xserver/os/connection.c +++ b/nx-X11/programs/Xserver/os/connection.c @@ -70,15 +70,9 @@ SOFTWARE. #endif #include #include -#ifndef XSERV_t -# define XSERV_t -#endif -#ifndef TRANS_SERVER -# define TRANS_SERVER -#endif -#ifndef TRANS_REOPEN -# define TRANS_REOPEN -#endif +#define XSERV_t +#define TRANS_SERVER +#define TRANS_REOPEN #include #include #include diff --git a/nx-X11/programs/Xserver/os/io.c b/nx-X11/programs/Xserver/os/io.c index 77ed0d44a..d184a981c 100644 --- a/nx-X11/programs/Xserver/os/io.c +++ b/nx-X11/programs/Xserver/os/io.c @@ -64,6 +64,9 @@ SOFTWARE. #include #endif #include +#define XSERV_t +#define TRANS_SERVER +#define TRANS_REOPEN #include #include #include diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index 5e9c62c74..f1f8f8d7f 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -90,6 +90,9 @@ OR PERFORMANCE OF THIS SOFTWARE. #include #include "misc.h" #include +#define XSERV_t +#define TRANS_SERVER +#define TRANS_REOPEN #include #include "input.h" #include "dixfont.h" diff --git a/nx-X11/programs/Xserver/os/xdmauth.c b/nx-X11/programs/Xserver/os/xdmauth.c index 75e748bea..2e061d5e1 100644 --- a/nx-X11/programs/Xserver/os/xdmauth.c +++ b/nx-X11/programs/Xserver/os/xdmauth.c @@ -39,6 +39,9 @@ from The Open Group. #include #include +#define XSERV_t +#define TRANS_SERVER +#define TRANS_REOPEN #include #include "os.h" #include "osdep.h" diff --git a/nx-X11/programs/Xserver/os/xdmcp.c b/nx-X11/programs/Xserver/os/xdmcp.c index 19b8753f7..d84fe2906 100644 --- a/nx-X11/programs/Xserver/os/xdmcp.c +++ b/nx-X11/programs/Xserver/os/xdmcp.c @@ -19,6 +19,10 @@ #ifdef WIN32 #include +#define XSERV_t +#define TRANS_SERVER +#define TRANS_REOPEN +#include #endif #include diff --git a/nx-X11/programs/Xserver/os/xstrans.c b/nx-X11/programs/Xserver/os/xstrans.c new file mode 100644 index 000000000..cdb664430 --- /dev/null +++ b/nx-X11/programs/Xserver/os/xstrans.c @@ -0,0 +1,17 @@ +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +#include + +/* ErrorF is used by xtrans */ +#ifndef HAVE_DIX_CONFIG_H +extern _X_EXPORT void +ErrorF(const char *f, ...) +_X_ATTRIBUTE_PRINTF(1, 2); +#endif + +#define TRANS_REOPEN +#define TRANS_SERVER +#define XSERV_t +#include -- cgit v1.2.3 From da5da2091dc47b031926c791135c83468f557e9d Mon Sep 17 00:00:00 2001 From: Eamon Walsh Date: Fri, 13 Jun 2008 21:59:09 -0400 Subject: Fix multiple warnings in os/xdmauth.c. v1: Eamon Walsh v2: backport to nx-libs 3.6.x (Ulrich Sibiller) --- nx-X11/programs/Xserver/os/xdmauth.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/os/xdmauth.c b/nx-X11/programs/Xserver/os/xdmauth.c index 2e061d5e1..48e1da6df 100644 --- a/nx-X11/programs/Xserver/os/xdmauth.c +++ b/nx-X11/programs/Xserver/os/xdmauth.c @@ -69,8 +69,8 @@ XdmAuthenticationValidator (ARRAY8Ptr privateData, ARRAY8Ptr incomingData, { XdmAuthKeyPtr incoming; - XdmcpUnwrap (incomingData->data, &privateKey, - incomingData->data,incomingData->length); + XdmcpUnwrap (incomingData->data, (unsigned char *)&privateKey, + incomingData->data,incomingData->length); if (packet_type == ACCEPT) { if (incomingData->length != 8) return FALSE; @@ -89,7 +89,8 @@ XdmAuthenticationGenerator (ARRAY8Ptr privateData, ARRAY8Ptr outgoingData, outgoingData->data = 0; if (packet_type == REQUEST) { if (XdmcpAllocARRAY8 (outgoingData, 8)) - XdmcpWrap (&rho, &privateKey, outgoingData->data, 8); + XdmcpWrap ((unsigned char *)&rho, (unsigned char *)&privateKey, + outgoingData->data, 8); } return TRUE; } @@ -99,7 +100,8 @@ XdmAuthenticationAddAuth (int name_len, char *name, int data_len, char *data) { Bool ret; - XdmcpUnwrap (data, (unsigned char *)&privateKey, data, data_len); + XdmcpUnwrap ((unsigned char *)data, (unsigned char *)&privateKey, + (unsigned char *)data, data_len); authFromXDMCP = TRUE; ret = AddAuthorization (name_len, name, data_len, data); authFromXDMCP = FALSE; @@ -152,11 +154,11 @@ XdmAuthenticationInit (char *cookie, int cookie_len) } XdmcpGenerateKey (&rho); XdmcpRegisterAuthentication (XdmAuthenticationName, XdmAuthenticationNameLen, - (unsigned char *)&rho, + (char *)&rho, sizeof (rho), - XdmAuthenticationValidator, - XdmAuthenticationGenerator, - XdmAuthenticationAddAuth); + (ValidatorFunc)XdmAuthenticationValidator, + (GeneratorFunc)XdmAuthenticationGenerator, + (AddAuthorFunc)XdmAuthenticationAddAuth); } #endif /* XDMCP */ @@ -387,7 +389,7 @@ XdmCheckCookie (unsigned short cookie_length, char *cookie, if (!plain) return (XID) -1; for (auth = xdmAuth; auth; auth=auth->next) { - XdmcpUnwrap (cookie, (unsigned char *)&auth->key, plain, cookie_length); + XdmcpUnwrap ((unsigned char *)cookie, (unsigned char *)&auth->key, plain, cookie_length); if ((client = XdmAuthorizationValidate (plain, cookie_length, &auth->rho, xclient, reason)) != NULL) { client->next = xdmClients; @@ -432,7 +434,7 @@ XdmToID (unsigned short cookie_length, char *cookie) if (!plain) return (XID) -1; for (auth = xdmAuth; auth; auth=auth->next) { - XdmcpUnwrap (cookie, (unsigned char *)&auth->key, plain, cookie_length); + XdmcpUnwrap ((unsigned char *)cookie, (unsigned char *)&auth->key, plain, cookie_length); if ((client = XdmAuthorizationValidate (plain, cookie_length, &auth->rho, NULL, NULL)) != NULL) { free (client); -- cgit v1.2.3 From 057cdafdc25c9c82989304ad0427c0038b40c521 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 9 Dec 2014 09:31:00 -0800 Subject: dix: GetHosts bounds check using wrong pointer value [CVE-2014-8092 pt. 6] GetHosts saves the pointer to allocated memory in *data, and then wants to bounds-check writes to that region, but was mistakenly using a bare 'data' instead of '*data'. Also, data is declared as void **, so we need a cast to turn it into a byte pointer so we can actually do pointer comparisons. Signed-off-by: Keith Packard Reviewed-by: Alan Coopersmith Signed-off-by: Alan Coopersmith v1: Keith Packard v2: backport to nx-libs 3.6.x (Ulrich Sibiller) --- nx-X11/programs/Xserver/os/access.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/os/access.c b/nx-X11/programs/Xserver/os/access.c index f9b9953bc..1f64366dd 100644 --- a/nx-X11/programs/Xserver/os/access.c +++ b/nx-X11/programs/Xserver/os/access.c @@ -1699,7 +1699,7 @@ GetHosts ( for (host = validhosts; host; host = host->next) { len = host->len; - if ((ptr + sizeof(xHostEntry) + len) > (data + n)) + if ((ptr + sizeof(xHostEntry) + len) > ((unsigned char *) *data + n)) break; ((xHostEntry *)ptr)->family = host->family; ((xHostEntry *)ptr)->length = len; -- cgit v1.2.3 From a11629656cc9cfde12f5145191fe05435958d5bd Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 22 Oct 2014 14:24:55 -0700 Subject: os: Eliminate uninitialized value warnings from access.c The ConvertAddr function doesn't reliably set the 'addr' return value, and so callers are getting flagged for using potentially uninitialized values. Initialize the value in the callers to NULL and then go ahead and check for NULL values before using them. Signed-off-by: Keith Packard Reviewed-by: Peter Hutterer v2: backport to nx-libs 3.6.x (Ulrich Sibiller) --- nx-X11/programs/Xserver/os/access.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/os/access.c b/nx-X11/programs/Xserver/os/access.c index 1f64366dd..032468362 100644 --- a/nx-X11/programs/Xserver/os/access.c +++ b/nx-X11/programs/Xserver/os/access.c @@ -1171,7 +1171,7 @@ ResetHosts (char *display) struct dn_naddr dnaddr, *dnaddrp, *dnet_addr(); #endif int family = 0; - void *addr; + void *addr = NULL; int len; siTypesInitialize(); @@ -1309,8 +1309,8 @@ ResetHosts (char *display) for (a = addresses ; a != NULL ; a = a->ai_next) { len = a->ai_addrlen; f = ConvertAddr(a->ai_addr,&len,(void **)&addr); - if ( (family == f) || - ((family == FamilyWild) && (f != -1)) ) { + if (addr && ((family == f) || + ((family == FamilyWild) && (f != -1)))) { NewHost(f, addr, len, FALSE); } } @@ -1778,7 +1778,7 @@ InvalidHost ( ClientPtr client) { int family; - void *addr; + void *addr = NULL; register HOST *selfhost, *host; if (!AccessEnabled) /* just let them in */ @@ -1809,11 +1809,11 @@ InvalidHost ( for (host = validhosts; host; host = host->next) { if ((host->family == FamilyServerInterpreted)) { - if (siAddrMatch (family, addr, len, host, client)) { + if (addr && siAddrMatch (family, addr, len, host, client)) { return (0); } } else { - if (addrEqual (family, addr, len, host)) + if (addr && addrEqual (family, addr, len, host)) return (0); } @@ -2085,7 +2085,7 @@ siHostnameAddrMatch(int family, void * addr, int len, struct addrinfo *addresses; struct addrinfo *a; int f, hostaddrlen; - void * hostaddr; + void * hostaddr = NULL; if (siAddrLen >= sizeof(hostname)) return FALSE; @@ -2097,7 +2097,7 @@ siHostnameAddrMatch(int family, void * addr, int len, for (a = addresses ; a != NULL ; a = a->ai_next) { hostaddrlen = a->ai_addrlen; f = ConvertAddr(a->ai_addr,&hostaddrlen,&hostaddr); - if ((f == family) && (len == hostaddrlen) && + if ((f == family) && (len == hostaddrlen) && hostaddr && (acmp (addr, hostaddr, len) == 0) ) { res = TRUE; break; -- cgit v1.2.3 From a2a7482f2a38c86e6d9790a177dabdc02153e087 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 17 Feb 2015 14:40:27 +1000 Subject: os/access: fix regression in server interpreted auth This was reported on irc on Fedora when rawhide went to 1.17.1. regression occured in: 2566835b4374edb3e5a8353d4f7c9e7ec4851c57 os: Eliminate uninitialized value warnings from access.c siAddrMatch doesn't need addr to be a useful value, it checks some things like localuser without having an address at all. Signed-off-by: Dave Airlie Tested-by: Peter Hutterer Signed-off-by: Peter Hutterer v2: backport to nx-libs 3.6.x (Ulrich Sibiller) --- nx-X11/programs/Xserver/os/access.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/os/access.c b/nx-X11/programs/Xserver/os/access.c index 032468362..532e32f68 100644 --- a/nx-X11/programs/Xserver/os/access.c +++ b/nx-X11/programs/Xserver/os/access.c @@ -1809,7 +1809,7 @@ InvalidHost ( 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 { -- cgit v1.2.3 From 736a2333e655ecfee78cb82f074cce5e84bdc218 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Tue, 4 Oct 2016 21:24:56 +0200 Subject: xserver: adapt xkbsrc includes syntax to match upstream --- nx-X11/programs/Xserver/dix/devices.c | 2 +- nx-X11/programs/Xserver/dix/dispatch.c | 2 +- nx-X11/programs/Xserver/dix/events.c | 2 +- nx-X11/programs/Xserver/os/utils.c | 2 +- nx-X11/programs/Xserver/xkb/xkmread.c | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'nx-X11/programs/Xserver/os') diff --git a/nx-X11/programs/Xserver/dix/devices.c b/nx-X11/programs/Xserver/dix/devices.c index 53ba83bed..39f5d123f 100644 --- a/nx-X11/programs/Xserver/dix/devices.c +++ b/nx-X11/programs/Xserver/dix/devices.c @@ -62,7 +62,7 @@ SOFTWARE. #include "dixstruct.h" #include "site.h" #ifdef XKB -#include +#include "xkbsrv.h" #endif #ifdef XCSECURITY #define _SECURITY_SERVER diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index aa647b063..d098afdc8 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -110,7 +110,7 @@ int ProcInitialConnection(); #endif #ifdef XKB #include "inputstr.h" -#include +#include "xkbsrv.h" #endif #define mskcnt ((MAXCLIENTS + 31) / 32) diff --git a/nx-X11/programs/Xserver/dix/events.c b/nx-X11/programs/Xserver/dix/events.c index c0ddfe67b..166d2e85e 100644 --- a/nx-X11/programs/Xserver/dix/events.c +++ b/nx-X11/programs/Xserver/dix/events.c @@ -129,7 +129,7 @@ of the copyright holder. #include "globals.h" #ifdef XKB -#include +#include "xkbsrv.h" extern Bool XkbFilterEvents(ClientPtr, int, xEvent *); #endif diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index f1f8f8d7f..8c69b1346 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -144,7 +144,7 @@ OR PERFORMANCE OF THIS SOFTWARE. #endif #ifdef XKB -#include +#include "xkbsrv.h" #endif #ifdef XCSECURITY #define _SECURITY_SERVER diff --git a/nx-X11/programs/Xserver/xkb/xkmread.c b/nx-X11/programs/Xserver/xkb/xkmread.c index a48615beb..18ab21dca 100644 --- a/nx-X11/programs/Xserver/xkb/xkmread.c +++ b/nx-X11/programs/Xserver/xkb/xkmread.c @@ -42,7 +42,7 @@ #include "misc.h" #include "inputstr.h" #include "xkbstr.h" -#include +#include "xkbsrv.h" #include "xkbgeom.h" Atom -- cgit v1.2.3