aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Dialog.c,Display.c,Font.c,NXdixfonts.c: don't use hardcoded string buffer ↵Ulrich Sibiller2018-01-074-20/+18
| | | | lengths
* Merge branch 'Ionic-bugfix/rpath' into 3.6.xMihai Moldovan2018-01-0512-23/+132
|\ | | | | | | | | | | Attributes GH PR #614: https://github.com/ArcticaProject/nx-libs/pull/614 Fixes: ArcticaProject/nx-libs#610
| * nxproxy/src/Makefile.am: build library using RUNPATH instead of RPATH.Mihai Moldovan2018-01-031-0/+1
| | | | | | | | | | Will only be useful at build time, since installation strips any RPATH/RUNPATH again.
| * nxproxy/configure.ac: enable libtool support.Mihai Moldovan2018-01-031-0/+3
| | | | | | | | | | | | | | | | Using libtool, the nxproxy binary will be replaced by a shell script wrapper that correctly pulls in required libraries (like libXcomp), thus making it possible to start the binary directly in the build directory. This wrapper is dropped during installation time.
| * nxproxy/configure.ac: drop --enable-cxx11.Mihai Moldovan2018-01-031-6/+0
| | | | | | | | | | | | | | | | This is a C program, so enabling or disabling C++11 support will not do anything useful. At most it'll lead to errors when using libtool, which is the next change to come...
| * Makefile: only try to copy/dereference libNX* files when installing data.Mihai Moldovan2017-12-301-1/+1
| |
| * nx-X11: reintroduce creation of libX11 compat symlinks.Mihai Moldovan2017-12-302-0/+25
| | | | | | | | | | We need this to be able to execute the resulting nxagent binary from within the build directory.
| * Makefile: install relinked program binary instead of the "temporary" one.Mihai Moldovan2017-12-301-1/+1
| |
| * nx-X11: build programs with a temporary RPATH/RUNPATH value and a relinked ↵Mihai Moldovan2017-12-307-10/+78
| | | | | | | | | | | | | | | | | | version with the system location. While the install target explicitly installs the relinked system-location version of a program, we do not actually use this. Currently, we copy nxagent directly out of the build root.
| * nxcompshad/src/Makefile.am: enable new ELF dtags to force RUNPATH creation ↵Mihai Moldovan2017-12-301-0/+1
| | | | | | | | for libXcompshad.
| * nx-X11/config/cf/{gnu,lnx}Lib.rules: enable new ELF dtags to force RUNPATH ↵Mihai Moldovan2017-12-302-6/+6
| | | | | | | | creation for nxagent.
| * nxcompshad/src/Makefile.am: implement libX11 RPATH/RUNPATH override.Mihai Moldovan2017-12-301-1/+5
| | | | | | | | | | | | | | Same method as used in the previous commit, but easier done thanks to autotools and libtool. Fixes: ArcticaProject/nx-libs#610
| * 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.