Commit Graph

1786 Commits

Author SHA1 Message Date
Povilas Kanapickas
e32cc609e2 lib/net: Fix incorrect sharing of data between different SSL sessions
(cherry picked from commit f0efe043bb)
2021-11-01 18:06:54 +02:00
Povilas Kanapickas
1c1e83c942 lib/net: Fix race conditions when closing SSL connections
This fixes the following security vulnerability:
- CVE-2021-42074 SIGSEGV on quick open/close sequence while sending
Hello message

The issue has been reported by Matthias Gerstner <mgerstner@suse.de>.
2021-11-01 17:43:35 +02:00
Povilas Kanapickas
ceecc61388 lib/server: Close connection when client app-level handshake fails
This fixes the following security vulnerability:
 - CVE-2021-42075 DoS via file descriptor exhaustion

The issue has been reported by Matthias Gerstner <mgerstner@suse.de>.

(cherry picked from commit deefecc262)
2021-11-01 17:41:06 +02:00
Povilas Kanapickas
45cd2a9f34 lib/barrier: Disconnect client on too long input packets
This commit is the 3/3 part of the fix for the following security
vulnerability:
 - CVE-2021-42076 DoS via excess length messages

The issue has been reported by Matthias Gerstner <mgerstner@suse.de>.

(cherry picked from commit fd5295eb31)
2021-11-01 17:40:49 +02:00
Povilas Kanapickas
d762ab7d50 lib/net: Limit the maximum size of TCP or SSL input buffers
This commit is the 2/3 part of the fix for the following security
vulnerability:
 - CVE-2021-42076 DoS via excess length messages

The issue has been reported by Matthias Gerstner <mgerstner@suse.de>.

(cherry picked from commit af90f39b4a)
2021-11-01 17:40:45 +02:00
Povilas Kanapickas
f546af4a85 lib: Enforce a maximum length of input messages
This commit is the 1/3 part of the fix for the following security
vulnerability:
 - CVE-2021-42076 DoS via excess length messages

The issue has been reported by Matthias Gerstner <mgerstner@suse.de>.

(cherry picked from commit e33c81b835)
2021-11-01 17:39:42 +02:00
Povilas Kanapickas
d9b4a1c703 lib/server: Remove unused code
(cherry picked from commit cc369820d4)
2021-11-01 17:39:26 +02:00
Niklas Hambüchen
03c1f06878 ui: Settings: Explain what "double tap" means 2020-06-14 20:16:03 +02:00
Povilas Kanapickas
515805fc1a Merge pull request #703 from zexee/master
Added toggleScreen function, using hot key to loop through all screens.
2020-06-08 18:49:49 +03:00
Chris Simons
7331519b51 add comments explaining the use of CLOG_PRINT 2020-06-06 09:51:33 -07:00
Povilas Kanapickas
2b2818c1a7 Revert "Make connection message a NOTE for consistency" 2020-06-05 21:12:44 +03:00
Povilas Kanapickas
0f29c7716d Merge pull request #656 from galkinvv/fix-win10-cpu-usage-spikes
Fixes high cpu usage spikes on win10
2020-06-05 00:30:22 +03:00
GeorgH93
64a9320d61 Fix build on Windows 2020-06-03 15:48:44 +02:00
zhexiwang
b477efa706 Added toggleScreen function, using hot key to loop through all screens.
Comparing to switchToScreen, it is more handy since the user only need
to hit one hotkey.
2020-06-02 21:49:06 +08:00
Jonathan Martens
583b2cb5ae Make connection message a NOTE for consistency
When disconnected a NOTE log entry is made in the log, when connected it just prints which seems inconsistent to me:

```
[2020-06-01T11:50:55] INFO: AES256-GCM-SHA384       TLSv1.2 Kx=RSA      Au=RSA  Enc=AESGCM(256) Mac=AEAD

	/home/jonathan/barrier/src/lib/net/SecureSocket.cpp,872
connected to server
[2020-06-01T11:52:43] INFO: entering screen
```
vs.
```
[2020-06-01T11:59:01] NOTE: disconnected from server
	/home/jonathan/barrier/src/lib/barrier/ClientApp.cpp,315
```
Since everything else logs with a timestamp I suggest changing this to NOTE as well for connection events being logged.
2020-06-01 12:02:33 +02:00
Dom Rodriguez
b373d8eda9 Merge pull request #679 from p12tic/x11-fix-event-wait-race-condition
XWindowsEventQueueBuffer: Fix delays when waiting for new events
2020-05-31 00:07:14 +01:00
Povilas Kanapickas
89c6623c0e lib/common: Remove no longer used stdexcept.h 2020-05-30 23:35:27 +03:00
Povilas Kanapickas
5eac13a969 Use noexcept instead of exception specifications 2020-05-30 23:35:27 +03:00
Dom Rodriguez
5d0f6e6f73 Merge pull request #719 from p12tic/tests
Fix building of tests
2020-05-30 21:14:08 +01:00
Povilas Kanapickas
64265e926f tests: Disable test that depends on external state 2020-05-30 22:41:27 +03:00
Povilas Kanapickas
460f5df838 test: Fix undefined behavior of deleting incomplete type 2020-05-30 22:41:26 +03:00
Povilas Kanapickas
13a0359c58 tests: Fix crash in XWindowsKeyStateTests 2020-05-30 22:41:25 +03:00
Povilas Kanapickas
f23e8a6ad9 test: Update to new APIs 2020-05-30 22:41:24 +03:00
Povilas Kanapickas
7868043ac4 test: Fix referenced library name 2020-05-30 22:41:23 +03:00
Povilas Kanapickas
a6e5e47366 test: Remove unresolved merge conflict markers 2020-05-30 22:41:22 +03:00
Povilas Kanapickas
56f1232352 test: Reduce the number of implicit include directories 2020-05-30 22:41:21 +03:00
Povilas Kanapickas
b99ca80eaa test: Enable building of tests 2020-05-30 22:41:20 +03:00
Povilas Kanapickas
5eafd30de4 lib/platform: Use std::string directly instead of String typedef 2020-05-30 21:46:49 +03:00
Povilas Kanapickas
a626f245a9 lib/net: Add missing include 2020-05-30 21:46:16 +03:00
Dom Rodriguez
e354d79d81 Merge pull request #706 from jmartens/patch-1
Fix Auto config missing hostname prompt #704
2020-05-30 18:28:13 +01:00
Dom Rodriguez
5522d077aa Merge pull request #708 from p12tic/enum-class
gui: Use enum class to scope enum values
2020-05-30 18:04:01 +01:00
Dom Rodriguez
4a2f1a9b61 Merge pull request #709 from p12tic/use-std-string-1
lib/base: Use std::string directly instead of String typedef
2020-05-30 18:00:54 +01:00
Dom Rodriguez
b02a20bd36 Merge pull request #712 from p12tic/use-std-string-4
lib/ipc: Use std::string directly instead of String typedef
2020-05-30 18:00:35 +01:00
Dom Rodriguez
df15e76e12 Merge pull request #710 from p12tic/use-std-string-2
lib/client: Use std::string directly instead of String typedef
2020-05-30 17:59:58 +01:00
Dom Rodriguez
4039bc2f3d Merge pull request #711 from p12tic/use-std-string-3
lib/arch: Use std::string directly instead of String typedef
2020-05-30 17:59:50 +01:00
Dom Rodriguez
9368845d8e Merge pull request #713 from p12tic/use-std-string-5
lib/net: Use std::string directly instead of String typedef
2020-05-30 17:59:36 +01:00
Povilas Kanapickas
787f907587 lib/ipc: Use std::string directly instead of String typedef 2020-05-30 16:00:42 +03:00
Povilas Kanapickas
61771d9039 lib/base: Use std::string directly instead of String typedef 2020-05-30 14:50:36 +03:00
Povilas Kanapickas
b4c1e4c239 lib/server: Use std::string directly instead of String typedef 2020-05-30 14:48:11 +03:00
Povilas Kanapickas
b93bcccf57 lib/net: Use std::string directly instead of String typedef 2020-05-30 14:47:11 +03:00
Povilas Kanapickas
6868491483 lib/arch: Use std::string directly instead of String typedef 2020-05-30 14:45:21 +03:00
Povilas Kanapickas
a0af288b2b lib/client: Use std::string directly instead of String typedef 2020-05-30 14:42:59 +03:00
Povilas Kanapickas
94a280a82b gui: Use enum class to scope enum values 2020-05-30 13:46:40 +03:00
Vasily Galkin
95f2a840be Windows 8+: make waiting for messages correspond to emptiness check
Fixes high cpu usage spikes on win10.
When queue was containing messages of only non-QS_POSTMESSAGE type the
"while (m_buffer->isEmpty())" busy-looped in EventQueue::getEvent
since isEmpty was true (checked only QS_POSTMESSAGE message type),
but waitForEvent returned immediately (checked more message types).

Investigation shows that the difference was introduced in
https://github.com/debauchee/barrier/commit/dbfb04a6e
to fix a problem with bad behaviour of GetQueueStatus
Researching showed that a similar problem was fixed in Qt,
and the solution was
"pass different flags to GetQueueStatus depending on version of windows"
https://bugreports.qt.io/browse/QTBUG-29097

So this patch makes changes to a barrier non-GUI core similar to Qt fix.
2020-05-29 14:09:48 +03:00
Jonathan Martens
21eadc9661 Fix Auto config missing hostname prompt #704
I think this might fix the prompt for a missing hostname when auto config is checked
2020-05-29 10:11:55 +02:00
Povilas Kanapickas
722b7d6cc4 XWindowsEventQueueBuffer: Fix delays when waiting for new events
QLength() may return 0 even if there are events pending because they
need to be read from the display socket in order to become visible. We
must use XPending() which will poll the socket if QLength() == 0.
2020-05-20 22:11:14 +03:00
Vasily Galkin
8ab6ad64f9 Remove unused IEventQueue::isEmpty() method to simplify code understanding
Current code base don't use IEventQueue::isEmpty() method.
Remove it to simplify IEventQueue API and to remove confusion with
IEventQueueBuffer with same name.

The IEventQueueBuffer::isEmpty() and all its implementations kept unchanged
2020-05-13 01:35:40 +03:00
Dom Rodriguez
dbd10820c3 Merge pull request #585 from chewi/pthread
Use -pthread flag and simplify pthread build logic
2020-05-12 23:13:16 +01:00
Dom Rodriguez
fe0f3303d7 Merge pull request #655 from simons-public/elevate-bind-failure-to-error
Elevate XSocketAddressInUse to ERROR
2020-05-12 23:06:15 +01:00
Dom Rodriguez
81d4758c28 Merge pull request #579 from eson57/patch-1
Update gui_sv.ts
2020-05-12 22:09:21 +01:00