Commit Graph

4026 Commits

Author SHA1 Message Date
Armin Novak 3ba66db99d Unify pReceiveChannelData and psPeerReceiveChannelData
Fix definitions of the two function pointers.
Use and definition did not match, fix that.
Will create warnings in external projects
2020-03-10 12:21:14 +01:00
Armin Novak d5b5088eac Fixed misinterpretation of SendChannelData
SendChannelData was defined with a return value of type int, but
used as BOOL everywhere. Fix the definition to match use.
2020-03-10 12:21:14 +01:00
Armin Novak c7187928e9 Fix tpkt header length checks for encrypted packets
If securityFlag SEC_ENCRYPT is set, remove the encryption headers from
the TPKT header length on comparison.
2020-03-10 12:20:50 +01:00
Armin Novak cc49a212bd Default to positive return for missing callbacks
When using +async-update, default to positive return if some
client callback is not implemented.
2020-03-10 08:59:52 +01:00
Armin Novak 5b9b7f331b Fixed memory leak in tls_get_channel_bindings 2020-03-06 11:37:35 +01:00
Armin Novak 9c999b7135 Added raw function wrapping X509_digest 2020-03-06 11:37:35 +01:00
Armin Novak 2be6e4117f Let ssl backend handle hash checks. 2020-03-06 11:37:35 +01:00
Armin Novak 00fa84b514 Check cert against CertificateAcceptedFingerprints
CertificateAcceptedFingerprints may contain a list of certificate
hashes and the corresponding fingerprint.
If one of the hashes matches consider the certificate accepted.
2020-03-06 11:37:35 +01:00
Armin Novak d3b36ab299 Added CertificateAcceptedFingerprints to settings 2020-03-06 11:37:35 +01:00
Armin Novak 07605b0281 Consume all TPKT data reading new/upgrade license 2020-03-05 13:48:58 +01:00
Armin Novak f1098aa17c rdp_recv_tpkt_pdu verbose debug parsing issues
Print out parsing issues found in MCS Channel 1003 parsing.
2020-03-05 13:48:58 +01:00
Armin Novak 8e55c44088 tpkt_ensure_stream_consumed now more verbose.
tpkt_ensure_stream_consumed now writes the function it was called
from to the log. This should help identify areas the check failed.
2020-03-05 13:48:58 +01:00
Armin Novak 825d63cf0c Added clarifications in freerdp_channel_process 2020-03-04 15:01:36 +01:00
Armin Novak d7ba252cd7 Fixed arguments for peer->ReceiveChannelData 2020-03-04 14:52:19 +01:00
Armin Novak 0f729d2b2c Fixed conversion and return checks.
* Fix some missing argument checks for function pointer implementations
* Fix broken return value check for client->SendChannelData
* Updated const correctness for function pointer implementations
2020-03-04 14:44:03 +01:00
Armin Novak 9398e8e647 Fixed freerdp_channel_process length checks
Fragmented data was not handled properly.
2020-03-04 14:44:03 +01:00
Armin Novak 4ad158fac6 Added freerdp_channels_data argument checks. 2020-03-04 14:44:03 +01:00
Armin Novak 3de666a80e Improve signal handler printout. 2020-03-04 08:22:56 +01:00
Norbert Federa 17e0d25104 dynvc/client: fix and improve channel closing code
- fixed and consolitate the duplicated code for sending the
  CLOSE_REQUEST_PDU to the server into dvcman_close_channel
- call dvcman_close_channel if a dynamic channel plugin fails
  to process the received channel data
- rdpegfx: don't try to remove a non-existing cache entry,
  return an error instead which now will close the channel, as
  expected by Microsoft's windows protocols test suite
2020-03-04 08:03:56 +01:00
Armin Novak bda2731035 Fixed reading suppress output pdu
Optional rectangle must be read from PDU
2020-03-03 13:10:24 +01:00
Armin Novak 1b91c77350 Fixed shadow server with mstsc as client. 2020-03-03 12:27:19 +01:00
Armin Novak 0d1c440cf5 Consume stream data in autoconnect
TPKT checks failed due to payload data not consumed in autodetect.
2020-03-02 13:54:44 +01:00
Armin Novak be714d2a13 Fixed tpkt header length checks.
TPKT header length and consumption of data was not consistently
checked. This adds checks after each packet processed and fixes
any inconsistencies found.
2020-03-02 11:40:35 +01:00
Armin Novak 039bb88fef Fixed warnings in capabilities.c 2020-03-02 11:40:35 +01:00
Armin Novak 171e73d797 Fixed compiler warnings in info.c 2020-03-02 11:40:35 +01:00
Armin Novak 318cb3dd47 Added tpkt header length plausibility checks. 2020-03-02 11:40:35 +01:00
Armin Novak 66352741f2 Added fallbacks for primitives auto detection.
When using primitives auto detection it was possible that no
primitive implementation was chosen at all.
This now skips broken implementations and falls back to generic
primitives if no other implementation does work.
2020-03-02 11:40:35 +01:00
Armin Novak ce387ba04f Check length of TPKT header for plausibility. 2020-03-02 11:40:35 +01:00
Norbert Federa ceb015a6bb egfx: the gfx reset grahics pdu is optional
Since the EGFX Reset Graphics PDU seems to be optional,
the graphicsReset variable (which is updated in that PDU's handler)
should be removed from the rdp_gdi struct with the next change
in public headers (as in freerdp v3).
There are still some clients that expect and check it and therefore
we keep it for now, initialized with TRUE.

sdas
2020-02-26 13:57:12 +01:00
Kobi Mizrachi 9417350d92 core: channels: add API to get channel name/id 2020-02-26 11:47:01 +01:00
Martin Fleisz 7ae8a158a0
Merge pull request #5707 from akallabeth/kbd_codepage
Added KeyboardCodePage option
2020-02-25 14:50:51 +01:00
Armin Novak cc7027f799 Updated RDP_KEYBOARD_LAYOUT_TABLE
Regenerated with new fetch_language_identifiers.py, less manual
postprocessing required.
2020-02-24 12:44:15 +01:00
Armin Novak 30275e7ac3 Added keyboard language codepages and listing option 2020-02-21 11:57:36 +01:00
Norbert Federa a48e7f8b47 core: fix endless loops waiting for activation
There are two loops polling the transport pdu receiver in non-blocking mode
when waiting for reaching CONNECTION_STATE_ACTIVE rdp state.

In case of an invalid pdu size in the tpkt header this leaded to an endless
loop, utilizing 100% of a cpu core.

Added a sleep and limited the max loop time to the tcp ack timout value.
2020-02-20 17:51:20 +01:00
Armin Novak ac4bb3c103 End connection before user callbacks if aborted.
If somewhere in freerdp_connect freerdp_abort_connect was called
the user callbacks Authenticate, GatewayAuthenticate and
Verify[Changed|X509]Certificate[Ex] must not be called.
2020-02-19 16:44:42 +01:00
Armin Novak 436b68e416 Fixed #5895: cast warnings. 2020-02-19 10:21:43 +01:00
Armin Novak c0bf6c0768 working progressive Original Method DWT
Implemented decoding utilizing Original Method DWT
(See [MS-RDPEGFX] 3.2.8.1.2.2 Reduce-Extrapolate Method)
2020-02-18 11:13:52 +01:00
Armin Novak 1fa00c4318 Refactored progressive codec. 2020-02-18 11:13:52 +01:00
Martin Fleisz e304428a5f
Merge pull request #5857 from akallabeth/scanbuild_fixes
Scanbuild fixes
2020-02-12 10:16:54 +01:00
Kobi Mizrachi 7a2eafbc3c core: server: fix a bad free in channel->queue cleanup 2020-02-10 14:29:30 +01:00
Armin Novak 89913624be FreeRDP_WTSVirtualChannelOpen unify channel new/free 2020-01-29 08:24:03 +01:00
Kobi Mizrachi b393d59bcb server: make sure all messages in channel->queue are freed when queue is freed 2020-01-29 08:24:03 +01:00
Kobi Mizrachi 8c8e5e4239 server: proxy: show indicative log on bind failure. 2020-01-27 07:57:45 +01:00
Martin Fleisz e4a2287f4d
Merge pull request #5859 from mfleisz/multi_trans_fix
core: Always send CS_MULTITRANSPORT PDU to server
2020-01-23 15:39:28 +01:00
Martin Fleisz 7ef8b10fec core: Always send CS_MULTITRANSPORT PDU to server
This PDU is required by Microsoft servers in order for bandwidth
management to work correctly. Even if we do not support multi-transport
for now we should just send a PDU with flags set to 0 to enable correct
handing of bandwidth measurement PDUs.
2020-01-23 15:16:14 +01:00
Armin Novak c92bbb37f5 Fixed NULL dereference. 2020-01-23 10:12:12 +01:00
Armin Novak ea25900f4c Fixed #5855: YCoCg to RGB conversion color order 2020-01-22 17:28:22 +01:00
Martin Fleisz baca062321 core: Fix and extend populate rdp file from settings
This PR contains the following changes:
- Get rid of unused SettingsModified array (kept in the settings struct for ABI
compatibility)
- Fix and extend freerdp_client_populate_rdp_file_form_settings (wrote <null> strings to the rdp file, missed a lot of settings)
- Set KeyboardHook default value to 2 (hook in fullscreen) just as mstsc
does
2020-01-22 14:18:30 +01:00
Armin Novak 9d65d9562b Fixed missing NULL set of pointer after free
Due to this double free was possible if disconnect_and_clear was
called multiple times.
2020-01-21 14:44:21 +01:00
Kobi Mizrachi 457d5e426c Revert "core: rdp: reset rdp->nla in rdp_reset"
This reverts commit 205b0fba7f.
2020-01-21 12:08:39 +01:00