aboutsummaryrefslogtreecommitdiff
path: root/nxcomp/src
Commit message (Collapse)AuthorAgeFilesLines
* nxcomp/src/Timestamp.{cpp,h}: use ::ctime_s or ::ctime_r instead of plain ↵Mihai Moldovan2018-01-092-22/+49
| | | | | | ctime, on-stack buffers and return std::string objects. Fixes: ArcticaProject/nx-libs#616
* 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
* 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.
* 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
|
* nxcomp/src/Loop.cpp: log message fixups only.Mihai Moldovan2017-12-181-2/+2
|
* nxcomp/src/Log.cpp: only create a new queue entry if we actually intend to ↵Mihai Moldovan2017-12-111-3/+3
| | | | | | write it out later. Fixes: ArcticaProject/nx-libs#596
* nxcomp: fix shadow warningUlrich Sibiller2017-12-111-2/+2
| | | | | | | | | | | | | | Fixes this: CXX Loop.lo Loop.cpp: In function 'void handleCheckResultInLoop(int&, int&, int&, fd_set&, fd_set&, timeval&, timeval&)': Loop.cpp:14080:68: warning: declaration of 'startTs' shadows a global declaration [-Wshadow] struct timeval &startTs) ^ Loop.cpp:1020:13: note: shadowed declaration is here T_timestamp startTs; Fixes ArcticaProject/nx-libs#545
* nxcomp: use new macro SAFE_FREE(ptr)Ulrich Sibiller2017-12-094-39/+33
| | | | | Should be used instead of free() calls and will clear the pointer after calling free(). This can prevent double-free or use-after-free errors.
* Loop.cpp: fix more memory leaksUlrich Sibiller2017-12-091-1/+15
| | | | | | | The thread specific stringstream objects on the stack need to be deleted, not just pop()ed. Fixes ArcticaProject/nx-libs#573 (partially)
* Loop.cpp: fix two memleaksUlrich Sibiller2017-12-091-4/+19
|
* ChannelEndPoint.cpp: fix two memleaksUlrich Sibiller2017-12-091-4/+10
|
* nxcomp: simplify free callsUlrich Sibiller2017-12-091-3/+3
| | | | free() can handle NULL itself
* nxcomp: fix double freeUlrich Sibiller2017-12-091-0/+2
| | | | Fixes ArcticaProject/nx-libs#569
* nxproxy/nxcomp: document logging optionsUlrich Sibiller2017-12-071-0/+14
|
* nxcomp/nxproxy: slightly improve the usage message of nxproxyUlrich Sibiller2017-12-071-6/+8
|
* nxcomp/nxproxy: add missing hint for keyconv optionUlrich Sibiller2017-12-071-0/+1
|
* nxcomp: use lowercase abbreviations for seconds and millisecondsUlrich Sibiller2017-12-029-71/+71
|
* nxcomp: remove unused return valuesUlrich Sibiller2017-12-021-19/+12
| | | | Some functions' return values are never used anywhere, so drop them.
* nxcomp: Fix setting of global tcpFDUlrich Sibiller2017-12-021-1/+2
| | | | | | | This corrects a flaw that stayed undetected for 2.5 years, introduced via c5a2cf82f6baf7a9e64ec2328a5bac0dfee453ef Fixes ArcticaProject/nx-libs#573
* nxcomp/src/Misc.cpp: Update explanation for the NX_TEMP env variable.Mike Gabriel2017-11-221-2/+1
|
* nxcomp/src/Loop.cpp: hardcode X11 and (legacy/xfs) font UNIX paths.Mihai Moldovan2017-11-041-15/+7
| | | | | | | | Fixes: ArcticaProject/nx-libs#536 Allowing overrides via NX_TEMP and TEMP breaks system using pam_tmpdir.so and most server infrastructure expects the location to be fixed anyway.
* nxcomp/src/Auth.cpp: handle launchd sockets in DISPLAY variable correctly ↵Mihai Moldovan2017-11-031-3/+23
| | | | when fetching X cookie.
* Regression fix for f855b3b6. Caused FTBFS with Loop.cpp:2669:0: error: ↵Mike Gabriel2017-10-271-1/+0
| | | | unterminated #ifdef (#ifdef TIME).
* nxcomp/src/Loop.cpp: fix whitespace errors on continued lines.Mihai Moldovan2017-10-271-810/+810
|