Commit Graph

214 Commits

Author SHA1 Message Date
David FORT 7c3f8f33ab Fixes for malloc / calloc + other fixes
This patch contains:

* checks for malloc return value + treat callers;
* modified malloc() + ZeroMemory() to calloc();
* misc fixes of micro errors seen during the code audit:
** some invalid checks in gcc.c, also there were some possible
integer overflow. This is interesting because at the end the data are parsed
and freed directly, so it's a vulnerability in some kind of dead code (at least
useless);
** fixed usage of GetComputerNameExA with just one call, when 2 were used
in misc places. According to MSDN GetComputerNameA() is supposed to return
an error when called with NULL;
** there were a bug in the command line parsing of shadow;
** in freerdp_dynamic_channel_collection_add() the size of array was multiplied
by 4 instead of 2 on resize
2015-06-22 19:21:47 +02:00
ivan-83 0fda0eb0de Code style changed. 2015-05-27 22:59:57 +03:00
ivan-83 1009268158 * debug and error messages now print function name and line number
* add debug messages to trace fake network dissconects
2015-05-27 22:57:10 +03:00
Hardening f8120919af Add checks for some XXX_New and XXX_Add functions
Based on PR #2616
2015-05-18 11:28:00 +02:00
Norbert Federa 1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
Norbert Federa 25fc866a58 Fix unchecked CreateThread calls and misc fixes 2015-05-05 13:55:48 +02:00
Bernhard Miklautz 159306fc7a Increase API version to 1.2.2 2015-04-22 10:23:25 +02:00
Bernhard Miklautz 2c072d33d3 Fix GDI return values and other fixes
* top level GDI functions return 0 on error and != 0 otherwise but the
  low level functions (16bpp.c, 8bpp.c 32bpp.c) which are called did it
	exactly the other way around. Those were adapted.
* change gdi_InvalidateRegion to BOOL and check calls where appropriate
* integrate comments from pull request
2015-04-21 14:18:07 +02:00
Bernhard Miklautz 515502ffa5 change return types of callbacks to BOOL
* change all client/server callbacks to BOOL
* update all clients accordingly
* add multiple return value checks
* small fixes
2015-04-21 14:18:07 +02:00
Bernhard Miklautz 79de8168f9 Integrate feedback from pull request
* orders.c: remove ; at eol
* rdpdr_main.c: simplify error case
* rdpsnd_pulse.c: fix incorrect check
* rdpsnd_main.c: adapt return value according to documentation
* update.c: fix incorrect return values
2015-03-30 18:29:32 +02:00
Bernhard Miklautz 74c8400789 coding style fixes
Add missing space after if
2015-03-30 17:15:45 +02:00
Bernhard Miklautz f469e069dc stream: Stream_Ensure*Capacity: change return type
Change the return type of Stream_Ensure*Capacity from void to BOOL to be
able to detect realloc problems easily. Otherwise the only way to detect
this was to check if the capacity after the call was >= the required
size.
In case Stream_Ensure*Capacity fails the old memory is still available
and need to freed outside.

This commit also adds checks to most calls of Stream_Ensure*Capacity to
check if the call was successful.
2015-03-30 16:33:48 +02:00
Zhang Zhaolong 99b14815a5 core: fix incorrect usage of realloc.
realloc can handle the case that its first parameter is NULL.

Signed-off-by: Zhang Zhaolong <zhangzl2013@126.com>
2015-03-11 13:40:20 +08:00
Norbert Federa 5f525e4f8d core: fix refreshRect/suppressOutput capabilities
refreshRectSupport and suppressOutputSupport of the General
Capability Set (MS-RDPBCGR 2.2.7.1.1) are server-only flags
that indicate whether the Refresh Rect or Suppress Output
PDUs are supported by the server.

Therefore in rdp_read_general_capability_set() we must only
change the respective settings if we are not in server mode.
2015-02-18 19:33:19 +01:00
Marc-André Moreau fdd2dc7601 freerdp: patch valgrind leaks, cleanup 2014-12-03 14:17:27 -05:00
Norbert Federa be7a10e660 core: use zero padding in suppress output pdu
Some legacy rdp servers seem to expect a zero padding after the
allowDisplayUpdates byte, probably because they incorrectly parse the
value as uint32.
2014-11-14 11:25:05 +01:00
Marc-André Moreau 68ee5df7d9 winpr: fix build warnings 2014-11-11 11:21:34 -05:00
Marc-André Moreau a48ed7239d Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	libfreerdp/core/update.c
2014-11-11 09:55:48 -05:00
Marc-André Moreau a538e791b3 shadow: add improved pointer updates 2014-11-06 17:25:41 -05:00
Hardening e04f90eada Offer to disable bulk compression when using remoteFx
This patch adds a skipCompression field in surface commands struct so that
we can disable bulk compression with remoteFx.
2014-11-04 16:14:53 +01:00
Bernhard Miklautz f40053577f core: add support for set keyboard indicators PDU
Server Set Keyboard Indicators PDU MS-RDPBCGR 2.2.8.2.1

* add server side code
* add support for client callback
2014-10-03 12:10:44 +02:00
Marc-André Moreau 3ddbb128cc libfreerdp-core: add SurfaceFrameBits function to combine frame marker with surface commands 2014-09-19 14:23:17 -04:00
Armin Novak 2f519d7f16 Replaced logging in libfreerdp with wlog defines. 2014-09-15 08:48:46 +02:00
Marc-André Moreau 66bbbf0519 libfreerdp-gdi: enable altsec frame markers 2014-09-05 16:06:19 -04:00
Marc-André Moreau 82a53057a1 Merge pull request #2023 from ptsekov/software-gdi-improvements
Software GDI improvements
2014-08-18 16:22:23 -04:00
Norbert Federa 3c8700f62d Merge pull request #1963 from akallabeth/async-update-to-lib
Moved update thread from client to library.
2014-08-14 17:46:43 +02:00
Armin Novak f4c133eaf8 Replaced custom logging mechanism with WLog wrapper. 2014-08-07 16:51:24 +02:00
Pavel Tsekov c51c5df2ff * include/freerdp/codec/color.h:
(freerdp_color_convert_drawing_order_color_to_gdi_color): Declare new
function.
* libfreerdp/codec/color.c:
(freerdp_color_convert_drawing_order_color_to_gdi_color): Implement.
(freerdp_image_convert_8bpp): Properly use the ARGB32/ABGR32/RGB32/BGR32
macros when converting 8bpp data to 32bpp.
(freerdp_image_convert_32bpp): Fix CLRCONV_ALPHA and CLRCONV_INVERT
processing for 32bpp destination.
(freerdp_mono_image_convert): Use ARGB32/ABGR32 when converting to 32bpp
and CLRCONV_ALPHA is set.
* libfreerdp/core/orders.c: Color data from drawing orders is
interpreted in big endian mode.
* libfreerdp/core/update.c (update_read_palette): Likewise.
* libfreerdp/gdi/16bpp.c (gdi_get_color_16bpp): GDI colors are stored as
RGB now.
* libfreerdp/gdi/32bpp.c (gdi_get_color_32bpp): Likewise.
* libfreerdp/gdi/gdi.c:
Use freerdp_color_convert_drawing_order_color_to_gdi_color() to convert
from drawing order color representation to GDI color representation
troughout.
* libfreerdp/gdi/graphics.c (gdi_Glyph_BeginDraw): Likewise.
(gdi_Glyph_EndDraw): Likewise.
2014-08-07 00:58:58 +03:00
Norbert Federa 8482eed323 core: addd missing PlaySound server callback 2014-07-16 15:38:10 +02:00
Armin Novak 689902c995 Moved update thread from client to library. 2014-07-14 19:27:50 +02:00
Hardening 61a58532db Check for bpp > 0
Bpp == 0 just makes no sense
2014-05-29 09:24:59 +02:00
Hardening 640b901396 Set checks to be strict and also check xorBpp field
This patch:
* renames bpp to xorBpp ;
* changes checks to strict ;
* adds checks on the xorBpp field
2014-05-29 00:12:48 +02:00
Hardening 532c42052a Fixes for CVE-2014-0250
This patch introduce misc checks when receiving pointer updates. We check
that the cursor are in the bounds defined by the spec. We also check that
the announced mask sizes are what they should be.
2014-05-28 23:07:00 +02:00
Hardening 9c18ae5bee Print function name when emiting an error 2014-05-21 17:27:36 +02:00
Marc-André Moreau e5990fa60c libfreerdp-core: MCS cleanup, better handling of domain parameters 2014-02-13 17:06:33 -05:00
Marc-André Moreau cdcd290c44 wfreerdp: fix most build warnings 2014-02-10 22:12:13 -05:00
Bernhard Miklautz 261651b43b core: don't use c99 style initialization
fixes #1602
2013-11-18 20:29:00 +01:00
Armin Novak 7cb0a70fd6 Added custom message resource free to update message queue. 2013-11-12 15:05:15 +01:00
Marc-André Moreau 3e3c0f1942 libfreerdp-core: fix potential asynchronous queuing memory problems for primary drawing orders 2013-11-03 13:29:48 -05:00
Marc-André Moreau a3f0f4c8dc libfreerdp-core: started logging packets to pcap file 2013-10-08 23:43:57 -04:00
Marc-André Moreau a0c0d7b998 libfreerdp-core: added debug output for surface commands 2013-10-08 20:40:58 -04:00
Bernhard Miklautz c99d9ee72b core/glyph: copy data when adding glyph to cache
fixes #1500
2013-09-24 23:25:18 +02:00
Marc-André Moreau f1c0ffb130 libfreerdp-core: fix sending of bitmap updates 2013-08-07 23:46:17 -04:00
Marc-André Moreau 8ca74a2766 libfreerdp-core: add support for server-side bitmap updates 2013-08-07 21:47:03 -04:00
Marc-André Moreau 7246cf1f8f libfreerdp-core: reduce usage of update_force_flush in server-side update code 2013-07-29 10:21:32 -04:00
Marc-André Moreau ea51dfc0b4 libfreerdp-core: fix server-side secondary drawing orders encoding bugs 2013-07-28 20:21:43 -04:00
Marc-André Moreau 8a4e83bdfb libfreerdp-core: fix server-side update encoding edge case 2013-07-28 16:31:38 -04:00
Marc-André Moreau 69128d8018 libfreerdp-core: improvements to the server-side activation/reactivation code 2013-07-19 21:52:28 -04:00
Marc-André Moreau a55fbc7b68 libfreerdp-core: initialize queue objects earlier 2013-07-17 15:27:55 -04:00
Marc-André Moreau 863b51f938 freerdp: merge with master 2013-06-28 12:50:24 -04:00
Marc-André Moreau f6df97c61e freerdp: add server-side Bitmap Cache v3 and Frame Marker negotiation 2013-06-21 19:20:20 -04:00
Vic Lee 9dbc240f68 libfreerdp-core/server: fix stream memory leaks. 2013-06-13 16:56:06 +08:00
Marc-André Moreau 404f66820b libfreerdp-core: force flushing of updates 2013-06-09 20:37:58 -04:00
Marc-André Moreau 64d8c3d42b libfreerdp-core: add update_check_flush 2013-06-09 19:47:59 -04:00
Marc-André Moreau 1695f530e7 libfreerdp-core: add method to flush server-side updates 2013-06-09 16:49:19 -04:00
Marc-André Moreau c9ebd98e00 libfreerdp-core: stub and implement many new server-side graphical orders 2013-05-12 17:46:13 -04:00
Marc-André Moreau 268004d0c9 libfreerdp-core: start implementing server-side alternate secondary drawing orders 2013-05-12 13:42:53 -04:00
Marc-André Moreau c431208829 libfreerdp-core: handle sending compressed bitmaps 2013-05-09 21:04:41 -04:00
Marc-André Moreau 645dfd7d63 libfreerdp-core: start encoding server-side bounds 2013-05-09 19:41:32 -04:00
Marc-André Moreau 841c710e1c libfreerdp-core: server-side update combining 2013-05-09 16:30:28 -04:00
Marc-André Moreau fd230443c5 freerdp: purge old stream utils 2013-05-08 16:27:21 -04:00
Marc-André Moreau 5b92413843 freerdp: purge deprecated stream utils 2013-05-08 16:09:16 -04:00
Marc-André Moreau 787a542f9e libfreerdp-core: fix cache glyph sending 2013-05-07 22:35:33 -04:00
Marc-André Moreau c1f8f3746d libfreerdp-core: implement server-side cache glyph v1/v2 2013-05-07 18:44:22 -04:00
Marc-André Moreau 8446c61724 libfreerdp-core: improve primary order encoding 2013-05-07 17:40:54 -04:00
Marc-André Moreau fe42b77118 libfreerdp-core: improve server-side primary order header construction 2013-05-07 15:33:52 -04:00
Marc-André Moreau afefc7a57f libfreerdp-core: added server-side PatBlt and ScrBlt 2013-05-07 12:45:52 -04:00
Marc-André Moreau 230380184d libfreerdp-core: add server-side Memblt and CacheGlyph 2013-05-07 11:41:32 -04:00
Marc-André Moreau e048147bde libfreerdp-core: start implement server-side bitmap cache v2 2013-05-06 23:21:12 -04:00
Marc-André Moreau 95c5ea86b0 libfreerdp-core: start implementing server-side drawing orders 2013-05-06 22:27:19 -04:00
Marc-André Moreau b4cac74136 xfreerdp-server: fix RemoteFX encoding 2013-05-01 18:15:55 -04:00
Marc-André Moreau 51715636a5 freerdp: remove some deprecated stream utils 2013-04-29 22:35:15 -04:00
Hardening 7701c9d934 Replace printf(...) by fprintf(stderr, ...) 2013-03-28 23:06:34 +01:00
Marc-André Moreau a8201b0d1b libwinpr-utils: combine old and new stream utils 2013-03-21 15:19:33 -04:00
Marc-André Moreau 64160af3a8 libfreerdp-core: added more message definitions 2013-02-04 14:56:54 -05:00
Marc-André Moreau ea7a35ee9b libfreerdp-core: message queue refactoring 2013-02-04 11:05:24 -05:00
Marc-André Moreau ed33ac84c5 libwinpr-sysinfo: fix hostname detection 2013-01-29 16:18:17 -05:00
Marc-André Moreau a1f23d0f97 libfreerdp-core: cleanup memory management of secondary orders 2013-01-28 18:42:32 -05:00
Marc-André Moreau 10a35a9224 libfreerdp-core: add +async-update and +async-input command-line options 2013-01-27 18:22:46 -05:00
Marc-André Moreau e1d0fad519 libfreerdp-core: fix memory leaks 2013-01-25 17:52:37 -05:00
Marc-André Moreau f6080b0c22 libfreerdp-core: disable asynchronous mode for now 2013-01-25 13:17:51 -05:00
Marc-André Moreau d8f8be192e xfreerdp: add asynchronous dequeuing of graphical messages 2013-01-25 12:08:00 -05:00
Marc-André Moreau c1d61ef365 libfreerdp-core: implement message dequeuing 2013-01-24 22:38:13 -05:00
Marc-André Moreau c14cf1e203 libfreerdp-core: add message callback registration 2013-01-24 20:05:03 -05:00
Marc-André Moreau 3c8c9aab62 libfreerdp-core: add default message post calls in message queue stubs 2013-01-24 19:08:30 -05:00
Marc-André Moreau fa30eeaef9 libwinpr-utils: started implementing asynchronous MessageQueue 2013-01-24 14:09:44 -05:00
Marc-André Moreau f38bc6d393 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-01-19 19:45:12 -05:00
Vic Lee cde3407138 libfreerdp-core: disable frame ack if server does not send the capability. 2013-01-19 17:07:45 +08:00
Marc-André Moreau 9ae698c1e5 Merge github.com:FreeRDP/FreeRDP 2013-01-18 19:28:03 -05:00
Marc-André Moreau e00e14971e libfreerdp-core: disable sending frame ack (unknown pduType2 error) 2013-01-18 19:24:56 -05:00
Marc-André Moreau 7ed7e1c9aa freerdp: merging with master 2013-01-18 19:01:25 -05:00
Marc-André Moreau 930c9907ce libfreerdp-core: code style cleanup 2013-01-18 16:50:25 -05:00
Marc-André Moreau 04c6f689cc Merge branch 'master' of github.com:awakecoding/FreeRDP 2013-01-18 13:50:59 -05:00
Marc-André Moreau 5b4aaf276f libfreerdp-core: added reference counter for receive buffers 2013-01-18 13:50:35 -05:00
Vic Lee 6b91ed5830 Frame acknowledgement should be sent by client UI. 2013-01-17 12:58:01 +08:00
rdp.effort 81c0e99ceb Misc fixes and result checks 2013-01-13 23:37:50 +01:00
rdp.effort 98f3cf249b check stream size when processing update packets 2013-01-12 00:46:04 +01:00
Marc-André Moreau 45d001ef8b libfreerdp-core: change return values for PDU processing 2013-01-08 17:18:10 -05:00
Marc-André Moreau b2c3ca8cc4 libfreerdp-utils: replace all calls to deprecated function xzalloc 2012-11-21 19:22:41 -05:00
Marc-André Moreau 6427c9dd90 libfreerdp-core: rdpSettings refactoring (part 2) 2012-11-07 15:13:14 -05:00
Marc-André Moreau 2431733043 libfreerdp-core: fix false undefined error 2012-10-09 14:03:41 -04:00
Marc-André Moreau ce13f39de2 Merge pull request #763 from FreeRDP/channels
Major Refactoring + Static Channel System
2012-10-09 10:44:44 -07:00
Marc-André Moreau 9d064171a7 freerdp: get rid of old types 2012-10-09 03:26:39 -04:00
Marc-André Moreau 1bf8a45519 freerdp: change uint8, sint8, uint16, sint16 to BYTE, INT8, UINT16, INT16 2012-10-09 03:01:37 -04:00
Marc-André Moreau 1ed644786c freerdp: change boolean type to BOOL type 2012-10-09 02:38:39 -04:00
Marc-André Moreau 5612bc43f8 freerdp: change true/false to TRUE/FALSE 2012-10-09 02:31:28 -04:00
Marc-André Moreau 9909a12af5 libfreerdp-utils: get rid of xmalloc, xrealloc and xfree 2012-10-08 23:21:26 -04:00
Marc-André Moreau e60a092d81 freerdp: fix headers 2012-10-08 23:02:04 -04:00
Vic Lee b4fae1fc97 libfreerdp-core: tag activated flag to false during re-activation. 2012-10-08 13:32:41 +08:00
Marc-André Moreau c7719e9982 libfreerdp-utils: get rid of rect utils 2012-09-24 04:59:18 -04:00
Marc-André Moreau 2026d3079e libfreerdp-core: code restructuration 2012-09-16 21:05:51 -04:00
Marc-André Moreau c62a82e228 wfreerdp-server: fix negotiation of codecs 2012-09-15 17:51:05 -04:00
Marc-André Moreau d5d1eb7762 libfreerdp: add proper config.h inclusions 2012-08-14 17:09:01 -04:00
Marc-André Moreau 19028a27b0 libfreerdp: move all libraries to libfreerdp directory, one step closer to monolithic build option 2012-08-13 23:19:51 -04:00