Commit Graph

145 Commits

Author SHA1 Message Date
Bernhard Miklautz
36c6478627 fix client/smartcard: indentation and return value
Integrate feedback from pull request review.
2017-12-14 16:21:19 +01:00
Bernhard Miklautz
5a1c0081c5 fix smartcard: SCardStatus unicode handling
* fix StatusW_Call to rely and use SCardStatusW
* fix trace call in  StatusW_Call - needs to be called after the sizes
  are set
* unify SCardStatus functions for pcsc - let the internal function handle unicode directly

This fixes an issue with size calculations of SCardStatusW.
2017-12-14 15:46:14 +01:00
Bernhard Miklautz
94b35cb4f7 fix channel/smartcard: leak in Connect[AW]
smartcard_Connect[AW] leaked the reader buffer in error case.
2017-12-13 17:04:06 +01:00
Bernhard Miklautz
9fc754170b fix channel/smartcard: SCardStatus
Add support for fmszReaderNamesIsNULL. Formating of the touched files
was also updated.
2017-12-13 17:04:06 +01:00
Bernhard Miklautz
bc8bdc3e54 fix channel/smartcard: compiler warnings
* remove unused variables
* remove unused jump label
2017-12-13 17:04:06 +01:00
Bernhard Miklautz
f8a3e7acd4 fix channel/smartcard: GetStatusChange return code
In case SCardGetStatusChange returned an error the call didn't return
any data but STATUS_NO_MEMORY as the calloc failed. This caused problems
with multiple applications server side (hangs and incorrect behavior).

Now the case when no readers are returned is handed correctly and the
data is also filled and send if the call fails.
2017-12-13 17:04:06 +01:00
Bernhard Miklautz
3dc4e283db fix channel/smartcard: return value handling
Device control calls always returned SCARD_S_SUCCESS even if an error
occurred. This caused server side software (including the card manager)
to behave incorrectly.
2017-12-13 17:04:06 +01:00
Bernhard Miklautz
99c69cde27 fix channel/smartcard: error handling
According to MS-RDPESC the smart card channel must set the IoStatus to
an NTSTATUS in case a encoding or decoding error happens. The smart card
channel did this correctly but the output stream was modified
incorrectly causing the smart card remote manager to stop in error
cases.
2017-12-13 17:04:06 +01:00
Armin Novak
b2c29158be Scanbuild warning, argument checks and leak fixes.
* Added Stream_GetRemainingCapacity to check remaining stream size
  before writes.
* Fixed shadow server memory leak.
* Fixed lots of scanbuild warnings
* Added missing argument checks in many functions
* Added missing static function declarations
2017-03-02 18:13:43 +01:00
Armin Novak
ff56f75893 Fixed format specifier and unused variables. 2017-02-17 14:25:59 +01:00
Andreas Schultz
d2f98261f7 smartcard: implement ListReaderGroups
Conflicts:
	channels/smartcard/client/smartcard_operations.c
	channels/smartcard/client/smartcard_pack.c
	channels/smartcard/client/smartcard_pack.h

smartcard_operations: move handling of call argument into functions

The call argument was only use by static functions and was always equal
to operation->call. Remove the argument and use operation-call directly.

Also put the memory allocation and check into the same place.

Conflicts:
	channels/smartcard/client/smartcard_operations.c

Updated formatting and API
2017-02-16 16:59:03 +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
Norbert Federa
c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01:00
bjcollins
456416a871 Dont use invalid/bogus input value for cbAtrLen for Smartcard Status Calls, instead just always use the max value here to indicate we have max
buffer space available.
2015-09-18 16:55:06 -05:00
Armin Novak
911750f0f6 Checking for allocation value > 0 2015-09-07 11:10:27 +02:00
Armin Novak
aa43f3b5df Fixed zero lenght allocation. 2015-09-01 12:25:44 +02:00
Martin Haimberger
2862109337 Merge remote-tracking branch 'upstream/master' into mh-channel-fix
Conflicts:
	channels/smartcard/client/smartcard_main.c
	channels/smartcard/client/smartcard_operations.c
2015-07-30 07:29:12 -07:00
Kirill Kotyagin
ef37487a44 channels/smartcard: fix possible mszReaders leak in smartcard_ListReaders(A/W)_Call 2015-07-22 17:25:17 +03:00
Kirill Kotyagin
76916d614b channels/smartcard: make smartcard_ListReaders(A/W)_Call return PCSC error statuses to the server 2015-07-22 16:56:24 +03:00
Martin Haimberger
d9e2834a70 channel smartcard hardend 2015-07-09 03:00:19 -07:00
Bernhard Miklautz
d922afc24a smartcard: fix compiler warnings
gcc 4.7.2:
warning: passing argument 1 of ‘free’ discards ‘const’ qualifier from
pointer target type
2015-05-18 11:36:31 +02: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
Marc-André Moreau
bc50c81a0a channels/smartcard: fix SCardTransmit return encoding with pioRecvPci 2015-02-20 15:39:51 -05:00
Marc-André Moreau
ee51da8500 channels/smartcard: cleanup debug output 2015-01-20 11:16:37 -05:00
Marc-André Moreau
e47f1c8b80 channels/smartcard: minor robustness fixes 2015-01-19 12:04:23 -05:00
Marc-André Moreau
51554ff16c channels: patch rdpdr/smartcard valgrind leaks, fix hang on disconnect 2014-12-28 14:56:13 -05:00
Marc-André Moreau
6c2ebb2b58 channels: redirection valgrind fixes 2014-12-27 13:50:50 -05:00
Marc-André Moreau
9ebc67ba02 channels/smartcard: cleanup SCardControl 2014-12-22 16:25:59 -05:00
Marc-André Moreau
0625be2720 channels/smartcard: fix SCardGetAttrib SCARD_AUTOALLOCATE support 2014-12-22 13:28:16 -05:00
Vinche
2708a8de5c first commit 2014-11-09 22:42:35 +01:00
Armin Novak
b1e9ffb655 Using wlog for channel logging now.
Fixed compiler warnings and broken callback in urbdrc.
2014-09-15 08:48:46 +02:00
Armin Novak
b22b897389 Reformatted changed files. 2014-09-09 16:32:22 +02:00
Armin Novak
419f102bec Fixed calling of dump functions, new API 2014-09-09 16:31:46 +02:00
Armin Novak
66b8905ac6 Using special log defines for channels now. 2014-08-11 09:12:01 +02:00
Armin Novak
b252009d36 Replaced custom logging mechanism with WLog wrapper. 2014-08-07 16:51:49 +02:00
erbth
0842475876 fixed getstatuschangeW rdp-return value in case of failure 2014-06-12 17:19:08 +02:00
erbth
19397d47fd fixed getstatuschangeA rdp-return value in case of failure 2014-06-11 21:45:53 +02:00
Marc-André Moreau
f5bfb98aca channels/smartcard: experiment with multiple card contexts 2014-06-02 17:20:01 -04:00
Marc-André Moreau
bc771ec56b channels/smartcard: reuse the same thread for the same SCARDCONTEXT 2014-05-12 17:05:20 -04:00
Marc-André Moreau
9f70629c3a channels/smartcard: store SCARDCONTEXT, SCARDHANDLE in SMARTCARD_OPERATION 2014-05-12 16:45:24 -04:00
Marc-André Moreau
9f93565811 channels/smartcard: modify operation functions to take SMARTCARD_OPERATION* 2014-05-12 16:19:44 -04:00
Marc-André Moreau
d8053b3d93 channels/smartcard: cleanup smartcard operations 2014-05-12 15:47:49 -04:00
Marc-André Moreau
5416ab1d6e channels/smartcard: decode and then call 2014-05-12 15:32:02 -04:00
Marc-André Moreau
77827bb411 channels/smartcard: split encoding from calling 2014-05-12 15:22:57 -04:00
Marc-André Moreau
526e74f7fa channels/smartcard: further split decoding from calling 2014-05-12 15:04:31 -04:00
Marc-André Moreau
8a940ad778 channels/smartcard: start splitting decoding from calling 2014-05-12 14:13:57 -04:00
Marc-André Moreau
fc39f6bc8d channels/smartcard: create smartcard context data structures with associated thread 2014-05-12 11:28:20 -04:00
Marc-André Moreau
2da6111972 channels/smartcard: fix clearing of rgSCardContextList 2014-05-12 10:17:49 -04:00
Marc-André Moreau
fda492c58d libwinpr-smartcard: fix AccessStartedEvent 2014-05-11 01:53:47 -04:00