Commit Graph

237 Commits

Author SHA1 Message Date
akallabeth
7bec222d85 Clean up drdynvc channels porperly locked.
(cherry picked from commit 7f1cca78aa)
2021-02-25 09:51:41 +01:00
Armin Novak
7ffb1ce638 Fixed double free on channel close in channel write.
(cherry picked from commit 81d59b2d47)
2020-12-01 15:10:23 +01:00
Armin Novak
e805752c4e Fixed compilation warnings.
(cherry picked from commit 57b405ca26)
2020-12-01 15:10:23 +01:00
akallabeth
23161efa62 Fixed codition with side effects
(cherry picked from commit 1a02af5a12)
2020-06-22 12:12:21 +02:00
Kubistika
66dfa56cc2 drdynvc: client: fix #6252 use-after-free
(cherry picked from commit 6ed765c960)
2020-06-16 09:08:52 +02:00
akallabeth
ca246a6bfd Clear dynamic channel lists on disconnect.
(cherry picked from commit a1eb3e66b3)
2020-05-20 15:41:24 +02:00
akallabeth
77b5043d21 Reset pointer to NULL after free.
(cherry picked from commit 33c7f808154c6682d3b84526a46d79f3e8d5c1ac)
2020-05-20 15:41:24 +02:00
akallabeth
f88705c10c Extend lifetime of streampool in drdynvc
The stream pool can not be released until all streams have been
returned. This might happen as late as channel termination, so
change the lifetime scope accordingly.

(cherry picked from commit 5bd4cfcdc0)
2020-05-18 16:56:03 +02:00
akallabeth
a84d2783f9 Fixed drdynvc_send stream release
(cherry picked from commit a497e78d37)
2020-05-18 16:56:03 +02:00
akallabeth
3fe4650b2c Fixed DestroyListener arguments and call order
(cherry picked from commit 0e08727d4e)
2020-05-18 16:41:20 +02:00
akallabeth
74629de51b drdynvc channel cleanup.
* Clean channel listeners on channel close
* Remove limit on listeners for channels
* Remove limit on channels

(cherry picked from commit 5b2a4434d8)
2020-05-18 16:40:44 +02:00
akallabeth
3e4a835c29 Fixed wrong error return from drdynvc_write_data
When the channel was closed a wrong error code was returned.

(cherry picked from commit 6446d609fc95830d7c9c1e6a91829146d567e277)
2020-05-08 11:11:12 +02:00
Armin Novak
4692f00864 Removed unnecessary cast. 2020-03-09 16:40:07 +01:00
Armin Novak
1fd51d9183 Fixed clang scanbuild warnings. 2020-03-04 09:17:35 +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
f933cafa93 Added some callbacks to dynamic channel
* Allow listener removal of channel during runtime
* Allow retrieval of channel name
2020-02-18 11:14:05 +01:00
Martin Fleisz
e304428a5f
Merge pull request #5857 from akallabeth/scanbuild_fixes
Scanbuild fixes
2020-02-12 10:16:54 +01:00
Armin Novak
d2aef75004 Fix #5852: handle CHANNEL_EVENT_WRITE_CANCELLED
When channels are cleaned up OpenHandle is most of the time
already 0. Ignore the argument checks for
CHANNEL_EVENT_WRITE_CANCELLED and CHANNEL_EVENT_WRITE_COMPLETE
only check where actually required (CHANNEL_EVENT_DATA_RECEIVED)
2020-01-29 08:52:25 +01:00
Armin Novak
087f290d8d Fixed type of index variable. 2020-01-23 10:12:12 +01:00
Armin Novak
7011b008b5 Ignore dynamic virtual channel errors
If a dynamic virtual channel can not process a message, ignore it.
2020-01-13 12:23:30 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak
75ed12f1f0 Fixed userdata pointer and CHANNEL_EVENT_WRITE_CANCELLED message. 2019-11-06 13:01:43 +01:00
Armin Novak
1bcb799560 Listen to CHANNEL_EVENT_WRITE_CANCELLED and emit if queue is cleared. 2019-11-06 13:01:43 +01:00
Armin Novak
1b78b59926 Fixed #4809: Properly process CHANNEL_EVENT_WRITE_COMPLETE 2019-11-06 13:01:43 +01:00
Armin Novak
0bba166020 Force close channel, use defines instead of magic numbers
* When senging a close request for a dynamic channel close the channel
  immediately. A response from the server is not guaranteed.
* Use the *_PDU defines instead of magic numbers when creating
  dynamic channel messages.
2019-02-26 15:29:30 +01:00
Armin Novak
711c726222 Fixed static analyzer warnings for dynamic channel. 2019-01-29 12:07:05 +01:00
Ilya Shipitsin
bdc039e719 resolve several issues found by cppcheck
[client/X11/xf_floatbar.c:800] -> [client/X11/xf_floatbar.c:796]: (warning) Either the condition '!floatbar' is redundant or there is possible null pointer dereference: floatbar.
[client/X11/xf_floatbar.c:800] -> [client/X11/xf_floatbar.c:797]: (warning) Either the condition '!floatbar' is redundant or there is possible null pointer dereference: floatbar.
[client/X11/xf_floatbar.c:800] -> [client/X11/xf_floatbar.c:798]: (warning) Either the condition '!floatbar' is redundant or there is possible null pointer dereference: floatbar.
[libfreerdp/codec/dsp.c:1156] -> [libfreerdp/codec/dsp.c:1154]: (warning) Either the condition '!srcFormat' is redundant or there is possible null pointer dereference: srcFormat.
[channels/drdynvc/client/drdynvc_main.c:1453] -> [channels/drdynvc/client/drdynvc_main.c:1450]: (warning) Either the condition '!drdynvc' is redundant or there is possible null pointer dereference: drdynvc.
[channels/audin/client/opensles/audin_opensl_es.c:98] -> [channels/audin/client/opensles/audin_opensl_es.c:94]: (warning) Either the condition '!opensles' is redundant or there is possible null pointer dereference: opensles.
[channels/audin/client/opensles/audin_opensl_es.c:159] -> [channels/audin/client/opensles/audin_opensl_es.c:153]: (warning) Either the condition '!opensles' is redundant or there is possible null pointer dereference: opensles.
2019-01-02 20:35:24 +05:00
Armin Novak
a8a6accc15 Fixed compiler warnings. 2018-10-03 15:16:59 +02:00
Armin Novak
baee520e3d Fix for #4866: Added additional length checks 2018-09-20 09:06:01 +02:00
Armin Novak
114abad767 Removed use of strcpy. 2018-08-27 14:34:09 +02:00
Armin Novak
a716dc244c Removed duplicate resource free. 2018-06-18 10:23:57 +02:00
Armin Novak
973a4c30b8 Fixed channel duplicate disconnect handling 2018-04-09 11:26:26 +02:00
Armin Novak
2517755d25 Fixed thread function return and parameters. 2018-03-07 14:36:55 +01:00
Martin Fleisz
ffa5fb07c2 drdynvc: Fix possible NULL pointer accesses 2018-03-06 16:03:13 +01:00
Armin Novak
a6a57e3619 Prefer dynamic logger in dynamic channel. 2018-02-13 13:46:25 +01:00
David Fort
73eb4ba77e drdynvc: fixed stream leak on error 2018-02-13 10:51:45 +01:00
Armin Novak
1ec1c9b7a3 Add dynamic channel queue object free function. 2018-02-09 11:04:31 +01:00
David Fort
41823080f9 Fix users of Stream_GetPosition() that returns size_t 2017-12-11 22:38:58 +01:00
David Fort
1e48405d19 drdynvc: fix invalid check
There were a copy'n paste error in the check of a malloc.
2017-12-01 14:20:24 +01:00
Armin Novak
8a5c78bde6 Unified dynamic channel cleanup code. 2017-08-31 09:55:59 +02:00
Armin Novak
523a881663 Channels with a context must free it themselves. 2017-07-28 08:39:51 +02:00
Armin Novak
8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Armin Novak
359077e8d3 Closing dynamic channels on shutdown. 2017-02-15 15:42:14 +01:00
Armin Novak
a64fb343c1 Fixed missing return. 2017-01-18 15:41:50 +01:00
Armin Novak
7f1d4222eb Checks, return value fixes
* Added missing argument checks
* Use opened drdynvc->log where possible
* Fix drdynvc_send return in case channel not connected.
2017-01-17 16:06:17 +01:00
Armin Novak
9f19da798c Added attach/detach support for channels. 2016-12-19 17:07:01 +01:00
Norbert Federa
f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
Bernhard Miklautz
00dae7c5ef Fix some spelling errors
Fixes #3633
2016-12-01 15:36:49 +01:00
Norbert Federa
c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01:00
Martin Haimberger
7fe28a8a78 virtualChannel: removed static variable usage from
VirtualChannelApi
2016-11-23 04:17:56 -08:00