aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* nxagent: implement RPATH/RUNPATH override for libX11.Mihai Moldovan2017-12-304-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed in ArcticaProject/nx-libs#610, we need a way to load libNX_X11 as a fake version of libX11 into nxagent's address space. For doing so, we have to link against libX11 at build-time and specify a(n) RPATH/RUNPATH to our libX11 -> libNX_X11 compat symlinks. This commit is essentially doing a cross between options 3 and 4 discussed in the provided GH issue. We link libX11 early (before specifying -Lcompat_symlinks_dir), so that the linker finds the "real" libX11 version with the libX11 SONAME. This leads to our binary depending upon both libX11 and libNX_X11 SONAMEs. We already always added RPATH/RUNPATH, but these values are not passed down to dependent libraries. What happens at run-time is that the loader searches for a libX11 SONAME, takes RPATH/RUNPATH into account and loads our libNX_X11 library instead via the compat symlinks. This satisfies the libX11 SONAME and dependent libraries will *not* load the system libX11 version again. Debian's dpkg-shlibdeps isn't quite happy about this mismatching SONAME situation, so instruct to look the other way while we're minding our business. Fixes: ArcticaProject/nx-libs#610
* Merge branch 'uli42-pr/fix_abstract' into 3.6.xMihai Moldovan2017-12-306-109/+175
|\ | | | | | | | | | | | | Attributes GH PR #615: https://github.com/ArcticaProject/nx-libs/pull/615 Fixes: ArcticaProject/nx-libs#612 Fixes: ArcticaProject/nx-libs#572
| * EncodeBuffer.cpp: add another VALGRIND guardUlrich Sibiller2017-12-291-1/+9
| | | | | | | | Fixes ArcticaProject/nx-libs#572
| * nxcomp: drop strncpy in favour of snprintfUlrich Sibiller2017-12-293-44/+33
| | | | | | | | with very few exceptions which require careful thinking ;-)
| * Loop.cpp: fix memleak happening with unknown tcp hostUlrich Sibiller2017-12-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ==28424== 6 bytes in 1 blocks are definitely lost in loss record 1 of 7 ==28424== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==28424== by 0x541D4D9: strndup (strndup.c:43) ==28424== by 0x4E8AD4B: ChannelEndPoint::getTCPHostAndPort(char**, long*) const (ChannelEndPoint.cpp:311) ==28424== by 0x4EBE9CC: ConnectToRemote(ChannelEndPoint&) (Loop.cpp:6656) ==28424== by 0x4EB0A4C: SetupProxyConnection() (Loop.cpp:3205) ==28424== by 0x4EDC81A: handleNegotiationInLoop(int&, fd_set&, fd_set&, timeval&) (Loop.cpp:14308) ==28424== by 0x4EAE40F: NXTransPrepare (Loop.cpp:2576) ==28424== by 0x4EAA801: NXTransContinue (Loop.cpp:1610) ==28424== by 0x4EB50C9: WaitCleanup() (Loop.cpp:4436) ==28424== by 0x4EA9507: NXTransProxy (Loop.cpp:1235) ==28424== by 0x400B2A: main (Main.c:111)
| * ChannelEndPoint.cpp: fix possible memleak in getUnixPath()Ulrich Sibiller2017-12-293-4/+7
| |
| * ChannelEndPoint.cpp: remove unneccessary codeUlrich Sibiller2017-12-291-2/+0
| | | | | | | | SAFE_FREE has set defaultUnixPath_ to NULL already
| * ChannelEndPoint.cpp: fix another memleakUlrich Sibiller2017-12-293-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ==7689== 50 bytes in 5 blocks are definitely lost in loss record 1 of 2 ==7689== at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==7689== by 0x54074D9: strndup (strndup.c:43) ==7689== by 0x4E7D803: ChannelEndPoint::getTCPHostAndPort(char**, long*) const (ChannelEndPoint.cpp:309) ==7689== by 0x4EC9D93: ConnectToRemote(ChannelEndPoint&) [clone .constprop.144] (Loop.cpp:6660) ==7689== by 0x4ECB94E: SetupProxyConnection() (Loop.cpp:3204) ==7689== by 0x4ECE824: handleNegotiationInLoop(int&, fd_set&, fd_set&, timeval&) [clone .isra.129] (Loop.cpp:14312) ==7689== by 0x4ED0F8A: NXTransPrepare (Loop.cpp:2575) ==7689== by 0x4ED1C35: NXTransContinue (Loop.cpp:1609) ==7689== by 0x4ED1D7B: WaitCleanup() (Loop.cpp:4440) ==7689== by 0x4ED2343: NXTransProxy (Loop.cpp:1234) ==7689== by 0x400B2A: main (Main.c:111)
| * EncodeBuffer.cpp: add VALGRIND guardUlrich Sibiller2017-12-291-0/+7
| | | | | | | | | | | | | | Same as in WriteBuffer.cpp Valgrind will complain about uninitialized data, but we are only writing to the memory here.
| * nxcomp: implement correct length handling for unix socket structsUlrich Sibiller2017-12-292-28/+57
| | | | | | | | (partially) fixes ArcticaProject/nx-libs#612
| * Loop.cpp: drop ugly ifdef indentationUlrich Sibiller2017-12-291-9/+6
| |
| * Loop.cpp: create xServerAddrUNIX only if requiredUlrich Sibiller2017-12-291-4/+3
| |
| * Loop.cpp: improve/fix usage of s(n)printfUlrich Sibiller2017-12-291-4/+6
| |
| * Loop.cpp: some reformatting/simplification/FIXMEsUlrich Sibiller2017-12-291-5/+11
| | | | | | | | (partially) fixes ArcticaProject/nx-libs#612
| * Loop.cpp: delete passed object prior to overwriting itUlrich Sibiller2017-12-291-1/+4
| |
| * ChannelEndPoint.cpp: re-scope/improve getSpecUlrich Sibiller2017-12-292-9/+21
| |
| * Loop.cpp: delete structs when no longer requiredUlrich Sibiller2017-12-291-0/+2
| | | | | | | | | | | | Fix another memleak (partially) fixes ArcticaProject/nx-libs#612
| * Loop.cpp: always close testSocketFDUlrich Sibiller2017-12-291-1/+2
| | | | | | | | | | | | was missing in the non-abstract code path (partially) fixes ArcticaProject/nx-libs#612
| * Loop.cpp: free display before leaving SetupDisplaySocket()Ulrich Sibiller2017-12-291-0/+5
| | | | | | | | fixes a memory leak
| * Loop.cpp: Fix memset (size was 0)Ulrich Sibiller2017-12-291-1/+1
|/ | | | (partially) fixes ArcticaProject/nx-libs#612
* Merge branch 'uli42-pr/silence_nxcompshad_warnings' into 3.6.xMihai Moldovan2017-12-282-4/+19
|\ | | | | | | Fixes: ArcticaProject/nx-libs#572
| * nxcompshad: silence GCC warningsUlrich Sibiller2017-12-282-4/+19
|/ | | | Fixes ArcticaProject/nx-libs#572
* Merge branch 'uli42-pr/reduce_uninitialised' into 3.6.xMihai Moldovan2017-12-2812-104/+86
|\
| * reduce usage of uninitialised bytesUlrich Sibiller2017-12-2812-104/+86
|/ | | | as reported by valgrind
* nxcomp/src/Log.h: take a reference-type in generic has_newline() function.Mihai Moldovan2017-12-271-1/+1
| | | | Should avoid copy-constructing objects again.
* nxcomp/src/Log.cpp: don't confuse users with useless warning messages in ↵Mihai Moldovan2017-12-271-8/+12
| | | | case that a log line append operation was requested, but the message level has lower precedence than the current log filter.
* nxcomp/src/Log.h: make sure we don't pass NULL pointers to strstr().Mihai Moldovan2017-12-271-1/+8
|
* nxcomp/src/Loop.cpp: whitespace in log messages only.Mihai Moldovan2017-12-251-4/+4
|
* nxcomp/src/Loop.cpp: use new log continuation mechanism.Mihai Moldovan2017-12-251-18/+18
| | | | | | | | | | | Especially don't flush data out mid-append. Doing so will lead to the next append operation failing. Should fix messages queuing up indefinitely (until they are discarded at program termination, at least) and missing messages in general. Fixes: ArcticaProject/nx-libs#577 Fixes: ArcticaProject/nx-libs#611
* nxcomp/src/Loop.cpp: whitespace only.Mihai Moldovan2017-12-251-3/+3
|
* nxcomp/src/Log.{cpp,h}: provide infrastructure for appending to already ↵Mihai Moldovan2017-12-252-23/+89
| | | | | | | | | existing log lines. Also handle errors due to missing buffers gracefully. This error is surprisingly easy to trigger, so we should make sure that the program does not crash.
* nxcomp/src/Log.h: NXLogStamp constructor should actually take a size_t-typed ↵Mihai Moldovan2017-12-251-1/+1
| | | | line parameter.
* nxcomp/src/Log.h: use initializer lists instead of initializing member ↵Mihai Moldovan2017-12-251-17/+4
| | | | variables in-block.
* nx-X11/programs/Xserver/hw/nxagent/Screen.c: re-enable normal error/warning ↵Mihai Moldovan2017-12-241-2/+2
| | | | | | output. Was dropped erroneously in cec31e2f06b29b332ee78cfefeefa7bfa136be75.
* nxcomp/src/ChannelEndPoint.cpp: don't use C-style casting in C++ code...Mihai Moldovan2017-12-241-3/+3
|
* nxcomp/src/Loop.cpp: fix small memory leak.Mihai Moldovan2017-12-241-0/+2
|
* testscripts/run-nxproxy2nx*: use more quotes, common variables and braces.Mihai Moldovan2017-12-245-177/+163
|
* testscripts/run-nxproxy2nx*: drop echo -ne "...\n".Mihai Moldovan2017-12-245-19/+18
| | | | | | Besides that being a useless construct to begin with, not all shells even support parameters to echo. Nuke that abomination from or^Wthe repository.
* testscripts/*: fix "randlomly" typos.Mihai Moldovan2017-12-245-5/+5
|
* nx-X11/programs/Xserver/hw/nxagent/Screen.c: update screen size after ↵Mihai Moldovan2017-12-241-0/+7
| | | | | | | modifying CRTC modes. This should get rid of the infamous "800x600 screen size" issue reproduced in X2Go whole display setups.
* nx-libs.spec: make sure pass additional configure flags through, not discard ↵Mihai Moldovan2017-12-191-1/+2
| | | | | | | | | them. Fixes RPM builds building libNX_X11 with poll() support, even though we explicitly disable it using --disable-poll in the main Makefile. Fixes: ArcticaProject/nx-libs#540
* nx-X11/extras/Mesa.patches_6.4.2/4002_no-special-glx-memfunctions.patch: ↵Mihai Moldovan2017-12-191-5/+6
| | | | | | | include stdlib.h and string.h for memset, malloc and free prototypes. Without that they are only implicitly defined - leading to build failures on *SUSE.
* mesa-quilt: drop debugging option erroneously committed.Mihai Moldovan2017-12-191-2/+0
|
* mesa-quilt: ignore user configuration file when applying MESA patches.Mihai Moldovan2017-12-191-1/+10
|
* nx-libs.spec: show compile calls during RPM-based builds.Mihai Moldovan2017-12-191-1/+2
|
* nx-libs.spec: re-add %{optflags} to CDEBUGFLAGS.Mihai Moldovan2017-12-191-1/+1
| | | | | | | | | I didn't mean to drop it in the first place in 07d308359995e07285b5c15d897c2617b52f0093 and 71bda0ed5c05e6bd75278ae7f88991f8ff35709e. Dropping the sed hack was fine - but we actually have to add these flags to CDEBUGFLAGS as well.
* nxcomp/src/Loop.cpp: log message fixups only.Mihai Moldovan2017-12-181-2/+2
|
* Drop SHMNAME workaround again, it *is* defined in shmstr.h, which is ↵Mihai Moldovan2017-12-163-8/+2
| | | | actually header I was searching for.
* nx-X11/programs/Xserver/Xext/shape.c: avoid pulling in Xlib in legacy mode ↵Mihai Moldovan2017-12-161-0/+7
| | | | via the _SHAPE_SERVER_ macro.
* nx-X11/programs/Xserver/Xext/shape.c: pull in shapestr.h for legacy Xext ↵Mihai Moldovan2017-12-161-1/+1
| | | | proto versions, since shape.h would pull in Xlib.