From aefdef62fc10335a94cbc5bf3cb86b24c8bc1c9f Mon Sep 17 00:00:00 2001 From: Reinhard Tartler Date: Mon, 10 Oct 2011 17:47:35 +0200 Subject: Imported nx-X11-3.3.0-4.tar.gz Summary: Imported nx-X11-3.3.0-4.tar.gz Keywords: Imported nx-X11-3.3.0-4.tar.gz into Git repository --- nx-X11/CHANGELOG | 4 + nx-X11/CHANGELOG.NX.original | 4 + nx-X11/CHANGELOG~ | 1020 ---------------------------------- nx-X11/lib/X11/XlibInt.c | 2 +- nx-X11/lib/X11/XlibInt.c.NX.original | 2 +- 5 files changed, 10 insertions(+), 1022 deletions(-) delete mode 100644 nx-X11/CHANGELOG~ diff --git a/nx-X11/CHANGELOG b/nx-X11/CHANGELOG index f576284e1..800eb02bb 100644 --- a/nx-X11/CHANGELOG +++ b/nx-X11/CHANGELOG @@ -1,5 +1,9 @@ ChangeLog: +nx-X11-3.3.0-4 + +- Enabled the code resetting the Xlib buffer if an IO error occured. + nx-X11-3.3.0-3 - Fixed the search path for the XKB base directory. diff --git a/nx-X11/CHANGELOG.NX.original b/nx-X11/CHANGELOG.NX.original index f576284e1..800eb02bb 100644 --- a/nx-X11/CHANGELOG.NX.original +++ b/nx-X11/CHANGELOG.NX.original @@ -1,5 +1,9 @@ ChangeLog: +nx-X11-3.3.0-4 + +- Enabled the code resetting the Xlib buffer if an IO error occured. + nx-X11-3.3.0-3 - Fixed the search path for the XKB base directory. diff --git a/nx-X11/CHANGELOG~ b/nx-X11/CHANGELOG~ deleted file mode 100644 index 754ee0702..000000000 --- a/nx-X11/CHANGELOG~ +++ /dev/null @@ -1,1020 +0,0 @@ -ChangeLog: - -nx-X11-3.3.0-2 - -- Fixed TR10F02116. The X11 agent could enter an indefinite wait state - if connection to X display is broken and libX11 output buffer is not - empty. - -nx-X11-3.3.0-1 - -- Opened the 3.3.0 branch based on nx-X11-3.2.0-2. - -nx-X11-3.2.0-2 - -- Imported patch fixing issues from X.Org security advisory, June - 11th, 2008: Multiple vulnerabilities in X server extensions. CVE - IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361, - CVE-2008-2362. - -nx-X11-3.2.0-1 - -- Opened the 3.2.0 branch based on nx-X11-3.1.0-6. - -nx-X11-3.1.0-6 - -- Modified Xserver Imakefile to link the Xfixes library. - -nx-X11-3.1.0-5 - -- Disabled the terminate action, just in case the TerminateServer - symbol is binded to a non default key sequence. - -nx-X11-3.1.0-4 - -- Imported patch fixing issues from X.Org security advisory, January - 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs: - CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428 - CVE-2007-6429 CVE-2008-0006. - -nx-X11-3.1.0-3 - -- Moved a variable definition placed in _mesa_make_current(). - -nx-X11-3.1.0-2 - -- Fixed TR10E01924. A crash could occur in _mesa_make_current(). - -- Initialized after_ret variable in _XcmsGetProperty(). - -nx-X11-3.1.0-1 - -- Opened the 3.1.0 branch based on nx-X11-3.0.0-37. - -nx-X11-3.0.0-37 - -- Changed the Xserver Imakefile to link against Xcomposite on the - Cygwin platform too. - -nx-X11-3.0.0-36 - -- Fixed TR07E01806. Modified host.def to build GLX code with symbol - __GLX_ALIGN64 defined on Solaris platform. - -nx-X11-3.0.0-35 - -- Flush explicitly the NX link before entering the select() in the - WaitForReadable() and WaitForWritable() routines. - -nx-X11-3.0.0-34 - -- Changed the agent Imakefile to link to the Xcomposite library. - -nx-X11-3.0.0-33 - -- Fix the NX_TRANS_WAKEUP stuff in WaitForSomething() to not over- - ride a valid timeout. - -- Check if the requesting client is gone in the XFixes functions - sending the cursor events. - -nx-X11-3.0.0-32 - -- Define DDXOSVERRORF and DDXOSFATALERROR symbols on Sun. - -- Changed the copyright attribution from Medialogic to NoMachine. - -nx-X11-3.0.0-31 - -- Make SmartScheduleStopTimer() visible outside Xserver/os/utils.c - so that it can be called by the agent. Export the declaration in - dixstruct.h. - -nx-X11-3.0.0-30 - -- The OsVendorVErrorFFatal flag is set to 1 if the function pointed - by OsVendorVErrorFProc is called due to a fatal error. - -- Give the possibility to the agent to redirect the standard error - during a Popen() or a System() by setting the OsVendorStartRedir- - ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers. - -nx-X11-3.0.0-29 - -- Changed the default message printed on a fatal server error. The - new message is: - - Error: Aborting session with 'Error text...'. - -- Hacked LogVWrite() to force all fatal error messages to have an - uppercase initial. Also remove the trailing newline and the full- - stop, if present. - -nx-X11-3.0.0-28 - -- Corrected the typos in the ChangeLog. - -nx-X11-3.0.0-27 - -- Fixed the cleanup of the X_RenderCompositeText16 padding bytes. - -- More code cleanup in the NX changes to the Xrender library. - -- Changed host.def to build the freetype and fontconfig libraries - if the agent server is also built. Freetype is built as a shared - library: this avoids the link error on 64 bit platforms. - -nx-X11-3.0.0-26 - -- Applied the following security patches, from the X.Org security - advisory, April 3rd, 2007 "Multiple vulnerability in X server, - libXfont and libX11": - - xorg-xserver-1.2.0-xcmisc.diff - xorg-libXfont-1.2.7-bdf-fontdir.diff - xorg-libX11-1.1.1-xinitimage.diff - -nx-X11-3.0.0-25 - -- Added the missing *.X.original file for ChkIfEv.c and Xlib.h. - -nx-X11-3.0.0-24 - -- Changed Xrender to clean up the padding bytes in XRenderComposite- - Text functions. - -- Added function XRenderCleanGlyphs() cleaning the padding bytes in - the data section of RenderAddGlyphs requests. - -nx-X11-3.0.0-23 - -- Removed the additional parameter from the call to NXTransFlush() - in _XReply(). - -- Call NXTransExit() on AbortServer() (called by FatalError()) to - give the proxy a chance to shut down the NX transport. - -nx-X11-3.0.0-22 - -- Moved the replacement of XCheckIfEvent() ChkIfEv.c with the name - XCheckIfEventNoFlush(). - -nx-X11-3.0.0-21 - -- Set BUFSIZE to 8192 bytes. While the output buffer size can be - configured by setting the XLIBBUFFERSIZE in the environment (see - OpenDis.c), this constant is still used when reading from the - socket. - -nx-X11-3.0.0-20 - -- If set, the handler pointed by _NXDisplayWriteFunction is called - after that more data is written to the display connection. - -nx-X11-3.0.0-19 - -- Added a RejectWellKnownSockets() stub to make possible to compile - the agent when the NX transport is disabled. - -- Added more useful logs to _XWaitForWritable(). - -nx-X11-3.0.0-18 - -- Changed Imakefile of X11 and Xserver in order to build nxcompshad - just before the NX agent server. - -- Changed Imakefile in Xserver to add NXdamage.o to NXAGENTOBJS. - -nx-X11-3.0.0-17 - -- Changed host.def in order to build Xdamage and Xrandr libraries. - -- Changed host.def in order not to build NXWin. - -nx-X11-3.0.0-16 - -- Changed host.def in order to build Xtst as a shared library. - -nx-X11-3.0.0-15 - -- Changes to comply with nxcompshad library. - -- Changed configuration to statically build Xtst library. - -- Restored parser directory under Xserver/hw/xfree86. - -nx-X11-3.0.0-14 - -- Changed the LICENSE file to state that the software is only made - available under the version 2 of the GPL. - -- Added file COPYING. - -- In nx-X11/programs and nx-X11/programs/Xserver/hw/xfree86, removed - files and directories not needed to build servers. - -nx-X11-3.0.0-13 - -- Changes aimed to link servers with static versions of Xdmcp and Xau - libraries. - -nx-X11-3.0.0-12 - -- Added references to implented FR in the ChangeLog. - -- Removed nx-X11/fonts and nx-X11/doc directories. They are not needed - for building the NX components. - -nx-X11-3.0.0-11 - -- Updated the copyright notices to year 2007. - -nx-X11-3.0.0-10 - -- Applied the following security patches: - - x11r6.9.0-cidfonts.diff - x11r6.9.0-dbe-render.diff - x11r6.9.0-geteuid.diff - x11r6.9.0-mitri.diff - x11r6.9.0-setuid.diff - -nx-X11-3.0.0-9 - -- Merged the NX changes to X11 with the X11R6.9.0 version of X.org. - -nx-X11-3.0.0-8 - -- Changes to build Xshadow library when building X11. - -- Changes to Xserver Imakefile to link Xshadow library. - -- Changes to host.def in order to build on old distributions. - -nx-X11-3.0.0-7 - -- Imported changes up to nx-X11-2.1.0-2 - -- Fixed TR08D01485. Updated rgb file paths validation in order to - support Ubuntu distribution. - -- Added Xtst to libraries to be linked by nxagent. - -- Changed Xpm Imakefile to build a shared library on Solaris. - -- Fixed build error on Solaris in xtrans. - -- Changed host.def not to build Xnest server. - -- Changed Xserver Imakefile to link nxaccess library. - -nx-X11-3.0.0-6 - -- Added the path of nxaccess library to the server link command. - -nx-X11-3.0.0-5 - -- Implemented FR10C01079 and FR10C01080. The merge of NX changes to - the X.org code is complete. - -- Merged changes in config/cf. The NX-*.def files have been dismissed. - Main platform dependent configurations have been moved to host.def. - -- Removed *.reference files from config/cf. - -- Fixed compilation for Cygwin platform. - -nx-X11-3.0.0-4 - -- Imported all changes up to nx-X11-2.0.0-32. - -- Cleaned up lib/zlib directory. - -- Added missing file programs/Xserver/os/utils.c.NX.original. - -- Updated the copyright notice to year 2006. - -- The pointer to the display buffer is reset after an I/O error. - This prevents leaving the buffer in an inconsistent state if the - error occurs inside _XFlush(). - -- Removed the modifications to the Xrender library. The cleanup of - the padding bytes is now performed by the NX transport. - -- NX uses the updated ZLIB from its build tree, so Imake.tmpl will - now assume that the platform as ZLIB unless otherwise stated. - -- The path of the SecurityPolicy file is searched and validated at - runtime. - -- Added the _X11TransSocketProxyConnInfo() function to Xtranssock.c - It returns the pointer to the XtransConnInfo private, if it is a - valid _NXProxyConnInfo structure. - -- The above function is used by OpenDis.c to detect if the NX trans- - port was requested on the display and avoid spurious error messa- - ges in the case of a connection failure. - -- Added NXmiwindow.o to the NXAGENTOBJS in the Xserver's Imakefile - and imported NXmiwindow.c in nxagent. This allows us to check the - pointer to the pOldClip region in miSetShape() before going on - freeing it. - -- The path of the XKB base directory and of the xkbcomp comand is - validated at runtime. - -- Also added a check to verify the validity of the rgb file path. - -- Added NXresource.o to NXAGENTOBJS in the Imakefile of nxagent. We - need this to a assign a resource to the pixmaps and other server - objects which need to be enumerated at reconnection. Some objects, - being created by the X server and not by the clients, don't pass - through the resource assignment process operated by the dix. To - ensure that all objects get a resource, we add a resource at the - time the object is created and temporarily assign the resource to - the server client. If the dix later assigns the resource to a va- - lid client, the resource is removed from the server client's list. - -- The display block handler registered by the client is called in - WaitForReadable() and WaitForWritable() before every select(), - not only upon entering the function. The reason is that more - data can be possibly produced for the NX link by the proxy it- - self and, when setting the flush policy to deferred, the client - may not have the chance of flushing the NX link. - -- Fixed a bug in XkbUseExtension() that caused Xlib to query the - presence of the XKEYBOARD extension multiple times. This partial- - ly implents the FR01D01275. The complete implementation required - modifications to the X11 agent, implemented in nxagent-2.0.0-33. - -- Updated to comply with the new NXTransFlush() interface. - -- Both nxwin and nxagent now read the X authority file by using an - fopen() instead of the system command 'cat'. - -- Removed NXmiwindow.o from the NXAGENTOBJ list. The agent will now - use the original miwindow.c. - -- Added some additional logs in Xtranssock.c to follow the creation - and removal of the X server's Unix listener. - -- Avoided the sleep of 5 seconds forced by Xtransutil.c if the dir- - ectory where the Unix listener is created is not owned by root. - This sleep is not executed on Cygwin (where the X socket can be - hardly owned by root) but may delay the startup of the agent if - the user chose a different NX_TEMP directory. Furthermore, it is - unclear what real benefits such sleeps are intended to bring to - the security of the X server. This can be controlled by defining - the NX_TRANS_SLEEP directive in Xserver/os/Imakefile. - -- Added NXmiexpose.o to the NXAGENTOBJ. - -- Ensured that _X11TransSocketCloseConnInfo() now initiates the NX - shutdown by calling NXTransClose(). - -- Corrected a misplaced #else that made SocketUNIXConnect() skip a - block if the connection was not to the NX transport. - -- Updated to comply with the new NX function prototypes introduced - in nxcomp-2.0.0-31. - -- Moved the most important Xtranssock.c modifications into separate - functions. - -- Ensured that the modifications enabling the internal connections - to the proxy are compiled only when the TRANS_CLIENT directive is - defined. - -- Solved a bug that prevented the X11 socket to be deleted at the X - server shutdown. This needs further tests. - -- Added nxcompext to the link of nxagent, now that the dependency - of libX11 from nxcompext is removed. - -- Improved the Xtranssock routines to never loop through the array - of connection info. - -- Added a congestion flag to the connection info structure and a - function querying the transport and reporting if a change in the - congestion state has occurred. The code is currently not enabled, - because instead of polling the transport, we let the proxy notify - the changes in congestion state by using the callback. The code - can be used in future to extend the library, for example, by add- - ing some counters tracking the bandwidth usage of the socket con- - nection, so that we can make the congestion notifications work - even with a plain X11 connection. - -- Profiled the routines in XlibInt.c to reduce the number of calls - to the error predicate function provided by the client. - -- Fixed the nxcompext build problem that caused make World to fail. - -- Added a 'CONF' target to the X11 and Xext Imakefiles so that the - configure script is not run if the config.status exists. - -- Added the _NXDisplayBlockHandler hook. The function is called by - Xlib before blocking. The parameter says if Xlib is going to wait - for more input or because it needs to write to the display socket. - The client can use the hook to perform any internal operation that - may require some time to complete. The user, though, should not - try to read or write to the display inside the callback routine. - -- Removed the outdated NX_TRANS_PROCESS, NX_TRANS_THREAD and NX_TR- - ANS_INCLUDE defines. - -- Reverted the lib/Xext Imakefile to the original XF86 version and - moved the build of the nxcompext library among the libX11 depend- - encies. - -- Corrected the lib/X11 Imakefile so that a new build of nxcomp and - nxcompext is not attempted if the libraries are up-to-date. - -- Removed the unused display buffer and image cleanup functions. - -- Reverted the PutImage.c file to the original XF86 version. - -- Added the _NXDisplayErrorPredicate function in XlibInt.c. It is - actually a pointer to a function called whenever Xlib is going to - perform a network operation. If the function returns true, the - call will be aborted and Xlib will return the control to the ap- - plication. It is up to the application to set the XlibDisplayIO- - Error flag after the _NXDisplayErrorPredicate returns true. The - function can be used to activate additional checks, besides the - normal failures detected by Xlib on the display socket. For exam- - ple, the application can set the funciton to verify if an inter- - rupt was received or if any other event occurred mandating the - end of the session. - -- Modified XIfEvent(), XMaskEvent() and XPeekIfEvent() to check the - _NXDisplayErrorPredicate function and return immediately if the - function returns true. - -- Modified _XWaitForReadable() to never enter the loop if the dis- - play is broken. - -- Corrected a make problem on Windows that caused the nxcomp and - nxcompext libraries to be referred with the wrong name, with the - result that a new configure and make was attempted at each build - attempt. - -- Merged all the changes to os, Xext, xkb, dix. - -- Changed host.def to build only the agent server. - -- Merged the changes to Xtranssock.c - -nx-X11-3.0.0-3 - -- Merged the changes to lib/X11. Restored original PutImage.c and - ClDisplay.c files. - -nx-X11-3.0.0-2 - -- Created a directory named 'reference' to keep files that are chan- - ged during the development of nx-X11 since the 1.5.0-16 to 2.0.0-32 - version. These files will be removed as long as the differences are - merged to the 3.0.0 version. When all differences are merged, this - directory will be removed. - -nx-X11-3.0.0-1 - -- Opened the 3.0.0 branch based on the nx-X11-2.0.0-9. The 3.0.0 - branch will now support the migration toward the X.org tree. Due - to time concerns, the 2.0.0 branch is going to be based on the - same nx-X11 as the 1.5.0. - -nx-X11-2.0.0-9 - -- Modified the agent link arguments to explicitly include the NX - libraries. - -- Disabled the Xinerama extension to avoid further clashes with - the redefinition of GC in Xlib. - -- Added os/libos.a at the end of the agent link. - -nx-X11-2.0.0-8 - -- Moved the declarations of _NXEnable* and related structures from - Xlibint.h to NXlibint.h. - -- Added provision for building the agent. This can be controlled by - setting NXAgentServer to YES in host.def. - -- Setting the NXUpgradeAgentServer variable to YES in the host.def - file will make the agent assume that it is being built in the new - environment. This variable is normally unset when building in the - 1.5.0 tree. - -nx-X11-2.0.0-7 - -- Fixed a problem on AMD64 due to the size of the area pointed by - the argument of _X11TransBytesReadable(). BytesReadable_t is long, - at least on Linux, while the ioctl() requires a pointer to an int. - The original _X11TransBytesReadable() function simply calls the - ioctl() by passing the pointer that is provided. NXTransReadable(), - instead, was correctly returning the value assuming a pointer to - a long, but this crashes some applications, among them xterm. Now - NXTransReadable() follows the same schema of the ioctl() call and - stores the result assuming a pointer to an int. - -- Removed the outdated NX_TRANS_PROCESS and NX_TRANS_THREAD code. - -nx-X11-2.0.0-6 - -- Made xterm work with the NX transport. This required small changes - to the Xt toolkit's and the xterm's files to let them use the NX - aware select(). This is useful to test the NX transport until the - nxagent server is integrated. - -- When the transport is gone _X11TransSocketBytesReadable() returns - EPIPE. This makes the client become aware of the closure of the - connection. - -- Added a call to NXTransDestroy() in XCloseDisplay(). - -- The exit() function in XlibInt.c causes a call to NXTransExit(). - -- Merged changes to dix/pixmap.c, xkb/xkbDflts.h, mi/Imakefile. - -- Removed unneeded changes and files containing patches already in - the latest X.org distribution: dix/dispatch.c, fb/fbcompose.c, fb/ - fbgc.c, xkb/ddxList.c, font/fontfile/dirfile.c, font/fontfile/ - encparse.c, font/fontfile/fontfile.c, font/FreeType/fttools.c, - Xrender/FillRect.c, Xrender/Picture.c. - -nx-X11-2.0.0-5 - -- Changes to the lib/X11/Imakefile to cleanly build the tree. This - is obtained by creating a link to the Xcomp library in exports/lib - without having to modify the programs' Imakefiles. - -- Finished merging the NX changes in the lib/X11 files. - -- Merged the CHANGELOG with the one from the 1.5.0 tree. - -nx-X11-2.0.0-4 - -- Merged the NX changes in most Xtrans and lib/X11 files. - -nx-X11-2.0.0-3 - -- Temporarily disabled the use of the MMX extensions in the Xserver's - fb code to successfully compile with GCC 4. - -nx-X11-2.0.0-2 - -- Imported the *.NX.reference and *.XF86.reference files that will - be needed for the merge. These files are the *.original from the - 1.5.0 tree. They will be removed as long as the merge advances. - -nx-X11-2.0.0-1 - -- Created the 2.0.0 branch based on X.org the 6.8.99.16 snapshot. - -nx-X11-1.5.0-16 - -- Added the missing *.XF86.original and *.NX.original files. - -nx-X11-1.5.0-15 - -- Made the nxagent server use select() instead of poll() on Solaris - so that it can leverage the new NX transport. - -- Moved the NXTransFlush() call to _XReply(). - -nx-X11-1.5.0-14 - -- Added the 'synchronous' parameter in the _XWaitForReadable() call - to NXTransFlush(). - -nx-X11-1.5.0-13 - -- Removed the log entry in XlibInt.c on calling the NXTransFlush(). - -nx-X11-1.5.0-12 - -- Changed XlibInt.c and utils.c to call NXTransExit(). - -nx-X11-1.5.0-11 - -- Changed XlibInt.c to comply with the new NXTransFlush() interfa- - ce introduced in nxcomp-1.5.0-42. - -- Cosmetic changes to messages printed for debug. - -nx-X11-1.5.0-10 - -- Ensured that all calls to _XIOError() are followed by a return. - -- Put exiting the client program in the case of an I/O error under - the control of the _NXContinueOnDisplayError flag. If set, the - I/O error routine will simply return, leaving to the application - the responsibility of checking the state of the XlibDisplayIOEr- - ror flag. - -- Added some checks whenever a read or write is performed on the X - connection, so that we can exit the I/O loop if the X channel is - gone. It is likely that more work will be needed when trying to - support XTHREADS enabled connections. This should not be a pro- - blem for now, as the default is still to quit the application un- - less the _NXContinueOnDisplayError flag is explicitly set. - -nx-X11-1.5.0-9 - -- Removed the references to the cygipc library in NXWin. Now use the - cygserver daemon to provide the MIT-SHM extension. - -- Fixed an error in the UseCygIPC definition. - -- Changed the cygwin.cf file to avoid redefinition of the BuildGlxExt, - XWinServer and BuildGlxExt symbols. - -nx-X11-1.5.0-8 - -- Added provision for deferred writes in the NX transport. When en- - tering _XWaitForReadable() we must ensure that data is flushed to - the proxy link. - -- Added the UseCygIPC define to NX-Cygwin.def. - -- Updated the NoMachine copyright notice on the modified files. - -nx-X11-1.5.0-7 - -- Added the GLX extension in NX-Sun.def. - -- Added some more logs in WaitFor.c. - -nx-X11-1.5.0-6 - -- Modified Xlibint.h and XlibInt.c to remove the _NXFlushSize para- - meter. New agents run the NX transport in-process, so we don't get - any benefit from increasing the display buffer size. - -- Modified NX-Darwin.def to not build the NXDarwin server. Since the - 1.4.0 version the NXDarwin server is unsupported and the NX client - for the Mac requires that the Apple X server is installed. - -- Changed NX-Linux.def to avoid the warning due to "SharedLibGLw" - being not defined. - -nx-X11-1.5.0-5 - -- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs - and avoid including mfb/libmfb.a. - -- Added the GLX extension in NX-Linux.def. This provides unaccelera- - ted support in nxagent, with GLX operations translated into core X - protocol primitives. - -- Fixed x-X11/programs/Xserver/GL/dri/Imakefile to look in ../../hw/ - /xfree86/os-support/bus for includes. - -nx-X11-1.5.0-4 - -- Avoid calling NXTransSelect() if the transport is gone, so that we - don't have to wait until the timeout. - -- Added the "-fno-strict-aliasing" option to linux.cf when compiling - with a GCC version >= 4. In the words of Stefan Dirsch: "The opt- - ion, which is default since gcc 3.1, can result in wrong code when - the gcc warnings related to it are ignored. And as there are seve- - ral warnings in X11 related to it, it has been disabled for X11 - from the beginning. This didn't change for gcc4, so it still needs - to be used." - -- Added more logs in XlibInt.c and utils.c. A warning is printed if - the SmartScheduler is initialized. - -nx-X11-1.5.0-3 - -- Started integration of nxcomp with the X libraries. The Xtrans - code creates an internal connection to the nxcomp library instead - of a child proxy process. - -- Changed Xpoll.h and XlibInt.c to replace the standard Select - with a version giving NX a chance to check its own descriptors. - -- Implemented the NXTransReadVector() and the NXTransWriteVector() - functions to replace READV() and WRITEV(). - -- Implemented memory-to-memory communication with the NX proxy by - making use of the NXTransAgent() interface. - -nx-X11-1.5.0-2 - -- We think that the way LoadAuthorization() is working is wrong. - It doesn't reset the list of stored authorizations before reading - the new cookies. Our take is that if a new auth file is to be - read, the only cookies that are to be accepted are those that are - in the new file, not those in the file -plus- those that have - been in the file in the past. Furthermore, if the list can't be - read or it is empty, it should assume that it ignores which co- - okies are valid and thus it should disable any access. Your mile- - age can vary. A less draconian approach could be to leave the old - cookies if the file can't be read and remove them only if the - file is empty. - - Adding the cookies without removing the old values for the same - protocol has an important implication. If an user shares the co- - okie with somebody and later wants to revoke the access to the - display, changing the cookie will not work. This is especially - important with NX. For security reasons, after reconnecting the - session to a different display, it is advisable to generate a - new set of cookies, but doing that it is useless with the current - code, as the old cookies are going to be still accepted. On the - same topic, consider that once an user has got access to the X - server, he/she can freely enable host authentication from any - host, so the safe behaviour should be to reset the host based - authenthication at least at reconnection, and keep as valid only - the cookies that are actually in the file. This behaviour would - surely break many applications, among them a SSH connection run - inside a NX session, as ssh -X reads the cookie for the display - only at session startup and does not read the cookies again - when the auth file is changed. - - Another bug (or feature, depending on how you want to consider - it) is that if the authority file contains entries for different - displays (as it is the norm when the authority file is the default - .Xauthority in the user's home), the X server will match -any- of - the cookies, even cookies that are not for its own display. This - means that you have to be careful when passing an authority file - to nxagent and maybe keep separate files for letting nxagent find - the cookie to be used to connect to the remote display and for - letting it find what cookies to accept. If the file is the same, - clients will be able to connect to nxagent with both the cookies. - This bug obviously affects any X server, also the real X server - running on the workstation, so it is common to see nxagent being - able to connect to the X server even if no cookie matches the - real display. - -- Added a check in lib/Xau/AuRead.c to prevent the fread() call to - be interrupted by SIGCHLD while reading the auth file. Due to the - way the old code worked, this could lead to the server enabling - local host access to the display. This problem had been identified - in the past. We just found that all the code dealing with reading - the auth file was affected. The code calls sigprocmask() to block - the signal (though it leaves some other calls unprotected) but the - SIGCHLD was not included in the set. - -- Added SIGCHLD to the set of signals that are blocked when reading - the authorization file. - -- As I was at it, I changed the path to the SecurityPolicy file. A - few Linux ditributors ship the file in $LIBDIR/xserver, a few only - in /etc/X11/xserver, most others in both places. It seems that - those who ship in $LIBDIR/xserver do also in /etc/X11 but the op- - posite is not true, so I switched to /etc/X11. - -nx-X11-1.5.0-1 - -- Opened the 1.5.0 branch. - -nx-X11-1.4.1-2 - -- Set parameter UseCygIPC on cygwin conf file in order to force the - build of MIT-SHM estension. - -- Removed some spurius object file. - -nx-X11-1.4.1-1 - -- Opened the 1.4.1 branch. - -nx-X11-1.4.0-8 - -- Changed DefaultFontPath and DefaultRGBDatabase in - NX-Cygwin.def. - -nx-X11-1.4.0-7 - -- Imported dispatch in nxdarwin package, in order to let - nxdarwin being able to detect new client connection. - -- Changed the Xpm Imakefile to make also .a static library - on Solaris. To link nxviewer and nxdestkop staticaly. - -nx-X11-1.4.0-6 - -- XInput extension enabled on MacOSX. - -- Added some missing backup files of the original XFree86 - package. - -nx-X11-1.4.0-5 - -- Changed the mi Imakefile in order to let xfree86 servers use - the normal mi extension initialization for the XInput exten- - sion. - -- XInput extension enabled on Solaris. - -nx-X11-1.4.0-4 - -- Removed the RejectWellKnownSocket for the cygwin and - MacOSX environments that doesn't use the Xtransport library. - -nx-X11-1.4.0-3 - -- Changed the implementation of the reject method in the - Xtransport library, now close any new incoming connection - immediately without reading or writing to it. - -nx-X11-1.4.0-2 - -- Implemented a reject method in the Xtransport library, - this function accept and close every connection attempt, - on the specified listening socket. - -- Added the new function RejectWellKnownSocket to the os - connection code. - This function use the new transport reject function on - all listening socket. - -nx-X11-1.4.0-1 - -- Opened the 1.4.0 branch. - -- Removed forgotten nxagent-1.3.2-20 directory. - -nx-X11-1.3.2-9 - -- Prevents NX Darwin server going through the reset. On Darwin - we found that the it is not possible to get the correct key- - board layout unless it is set on the local machine, before - the NX session is started, by using xmodmap. As we set the - keyboard locally, we must prevent the X server to reset, or - we would loose any local configuration. - -nx-X11-1.3.2-8 - -- Removed action associated to keysym XK_Terminate_Server. This - could cause agent to be terminated when pressing shift + back- - space if using the default US keyboard mapping. - -- Disabled the remaining debug logs in lib/X11/PutImage.c - -nx-X11-1.3.2-7 - -- Fixed the wrong programs/Xserver/Imakefile in 1.3.2-6 package. - -nx-X11-1.3.2-6 - -- Changed the define from NX_CLEAN_IN_PLACE to NX_CLEAN_INPLACE. - Definition of symbol is now placed in the Imakefile. - -- The new _NXEnableCleanInplace Xlib variable does control which - algorithm is used to clean the images. Setting NX_IMAGEINPLACE - in the environment will activate the in-place cleanup. - -- The default value of _NXEnableCleanInplace is -1. Leaving it to - a value <= 0 disables use of CleanInplace. - -nx-X11-1.3.2-5 - -- Patch in config/cf/sun.cf. Fix for libfontconfig compilation - during gmake Everything on Solaris. - -- Patch in lib/X11/Imakefile. Fix for nxcomp compilation during - gmake World on Solaris. - -nx-X11-1.3.2-4 - -- Image cleanup is now performed by using NXCleanInPlaceImage from - nxcompext. This function saves a buffer copy by cleaning the - padding bytes in the same buffer provided by the caller. Note that - to prevent memory violations in the case the image was allocated - in a static buffer, the function will temporarily redefine the - SIGSEGV handler. The former handler is restored before returning - to the caller. This can potentially affect some multithreaded - clients. Is to be decided if the function is safe enough to be - included in the production release. - -nx-X11-1.3.2-3 - -- More debug logs in programs/Xserver/xkb/ddxLoad.c. - -nx-X11-1.3.2-2 - -- Added NXmiwindow.o to NXAGENTOBJS in programs/Xserver/Imakefile. - File was not linked into the resulting nxagent. This solves the - problem of missing repaints in CDE and other Xt applications. - -nx-X11-1.3.2-1 - -- Added some debug logs in programs/Xserver/xkb/ddxLoad.c. Function - XkbDDXCompileKeymapByNames is called by OpenOffice to read the - keyboard configuration whenever a drop-down menu is accessed. It - seem to always fail with the following error: - - The XKEYBOARD keymap compiler (xkbcomp) reports: - > Error: Can't find file "unknown" for geometry include - > Exiting - > Abandoning geometry file "default" - -- Opened the 1.3.2 development branch. - -nx-X11-1.3.1-12 - -- Fixed a problem in xkb/ddxLoad.c on Solaris where Pclose was - always returning an error code despite the fact that command - was executed properly. - -nx-X11-1.3.1-11 - -- Changed default GCC flags from '-O2 -fno-strength-reduce' to - -O3. No platform where NX is targeted is currently using a - GCC 2.x affected by the -fno-strength-reduce bug. Note also - that nxcomp is already compiled with -O3 since 1.1.1, so it - can be considered safe. - -nx-X11-1.3.1-10 - -- Imported an updated fbcompose.c file from XFree86-4.3.99.902. - This fixes "uninitialized value" problems reported by Valgrind. - -- Fixed further buffer overflows by updating the following file - with recent versions coming from the XFree86-4.3.99.902 tree. - - nx-X11/lib/font/fontfile/dirfile.c - nx-X11/lib/font/fontfile/encparse.c - nx-X11/lib/font/fontfile/fontfile.c - -- Fixed a possible buffer overflow in lib/font/FreeType/fttools.c. - Verified that the change is already in the XFree86 4.4.0 CVS. - -nx-X11-1.3.1-9 - -- Fixed Xserver/Imakefile which was still referencing NXpixmap.o. - -nx-X11-1.3.1-8 - -- Imported an updated fbgc.c from XFree86-4.3.99.902. This fixes - some minor problems reported by Valgrind. - -- A major problem was reported by Valgrind about reading after - the block allocated in fbCreatePixmap from AllocatePixmap. The - file pixmap.c has been modified so that 4 bytes are added to - the pixmap buffer at any new allocation. This quick hack should - solve the problem for both nxagent and the NXWin server. Further - investigation is planned for the next release. - -- Fixed Xtranssock.c to compile on Solaris where struct sigaction - doesn't have the sa_restorer member. - -nx-X11-1.3.1-5 - -- Renamed the NX-sun.def configuration file to NX-Sun.def. - -- Renamed the non-standard NX_iPAQ_XServer and NX_Zaurus_XServer - symbols to NXiPAQXServer and NXZaurusXServer. - -- Added the missing sun.cf.XF86.original file in config/cf. - -- Added the missing empty file host.def.XF86.original in the - same directory. - -- Added initialization of sa.sa_mask when setting sigaction() - for SIGCHLD. The problem was reported by Valgrind running - nxagent. - -- Removed an unused block of code from WaitFor.c. The code had - been commented out in previous versions. - -- Removed the non-standard colon at the end of version in this - CHANGELOG. - -- Removed the spurious spaces in this CHANGELOG. - -nx-X11-1.3.1-4 - -- Added a little workaround to the top Imakefile intended to - hide the makedepend warnings about non portable whitespaces - in sources. - -nx-X11-1.3.1-3 - -- Fixed compilation problem with nxagent-1.3.1-13. - -nx-X11-1.3.1-2 - -- Changes in NX-sun.def configuration file for Solaris to allow - compilation of the XKB extension. - -nx-X11-1.3.1-1 - -- Opened the 1.3.1 development branch. - -nx-X11-1.3.0-6 - -- Original output buffer size in stock XFree86 is 2048. We try - to reduce context switches and help stream compression by - increasing the maximum size of the buffer 8192. _NXFlushSize - determines when the display buffer is actually flushed. It is - set by default to 4096 but agents should set it to 0 if they - want to disable early flush. - -- Added the _NXLostSequenceFunction function pointer to let NX - agents suppress the error message and modify the default Xlib - behaviour when out-of-order sequence numbers are received. diff --git a/nx-X11/lib/X11/XlibInt.c b/nx-X11/lib/X11/XlibInt.c index 9a8ac4b73..97758e7ab 100644 --- a/nx-X11/lib/X11/XlibInt.c +++ b/nx-X11/lib/X11/XlibInt.c @@ -1840,7 +1840,7 @@ _XSend ( int congestion; #endif -#ifdef AGENT_SERVER +#ifdef NX_TRANS_SOCKET if (!size || (dpy->flags & XlibDisplayIOError)) { if (dpy->flags & XlibDisplayIOError) diff --git a/nx-X11/lib/X11/XlibInt.c.NX.original b/nx-X11/lib/X11/XlibInt.c.NX.original index 9a8ac4b73..97758e7ab 100644 --- a/nx-X11/lib/X11/XlibInt.c.NX.original +++ b/nx-X11/lib/X11/XlibInt.c.NX.original @@ -1840,7 +1840,7 @@ _XSend ( int congestion; #endif -#ifdef AGENT_SERVER +#ifdef NX_TRANS_SOCKET if (!size || (dpy->flags & XlibDisplayIOError)) { if (dpy->flags & XlibDisplayIOError) -- cgit v1.2.3