Commit Graph

3186 Commits

Author SHA1 Message Date
akallabeth
9ca34bc876 [winpr,sspi] fix memory leak in kerberos_InitializeSecurityContextA 2022-12-02 15:08:09 +01:00
akallabeth
b0aef46caf [winpr,krb] fixed kerbeos context handling 2022-12-02 15:08:09 +01:00
Armin Novak
e1eacad74c [scard] fixed memory leak
card_id_and_name_* return allocated values, free after use
2022-12-02 15:08:09 +01:00
Armin Novak
58bc1ee4c9 [smartcard] fix multi string conversion 2022-12-02 15:08:09 +01:00
David Fort
bc8afa0ad5 ncrypt_pkcs11: fix buffer allocation for key name 2022-12-02 15:08:09 +01:00
Armin Novak
0091f72761 [winpr,smartcard] fix PCSC_SCardListReaders 2022-12-02 15:08:09 +01:00
Armin Novak
bbf893a5d8 [winpr,crt] fix unicode conversion functions
There are subtle differences between MultiByteToWideChar,
WideCharToMultibyte and the ICU equivalents
2022-11-29 15:42:10 +01:00
akallabeth
6014efc19b [winpr,smartcart] simplified casts 2022-11-28 10:42:36 +01:00
akallabeth
66dad5deae fixed review issues
* Overallocation in unicode functions
* Removed useless statements
* Fixed loop indices
2022-11-28 10:42:36 +01:00
akallabeth
7bf8b46726 [smartcard] Use multistring convertion functions 2022-11-28 10:42:36 +01:00
Armin Novak
2784d54d6f Deprecate MultiByteToWideChar and WideCharToMultiByte 2022-11-28 10:42:36 +01:00
Armin Novak
6f2d7f94cf Deprecate ConvertFromUnicode and ConvertToUnicode 2022-11-28 10:42:36 +01:00
akallabeth
5799fb2018 Replace ConvertFromUnicode and ConvertToUnicode
* Use new ConvertUtf8ToWChar, ConvertUtf8NToWChar,
  ConvertUtf8ToWCharAlloc and ConvertUtf8NToWCharAlloc
* Use new ConvertWCharToUtf8, ConvertWCharNToUtf8,
  ConvertWCharToUtf8Alloc and ConvertWCharNToUtf8Alloc
* Use new Stream UTF16 to/from UTF8 read/write functions
* Use new settings UTF16 to/from UTF8 read/write functions
2022-11-28 10:42:36 +01:00
Armin Novak
2aefa9418d [winpr,stream] Added functions to read/write utf-8
* Stream_Write_UTF16_String_From_UTF8 writes a UTF-8 string to a
      stream in UTF-16 encoding
    * Stream_Read_UTF16_String_To_UTF8 reads a UTF-16 encoded string
      from the stream and returns it in UTF-8 encoding
2022-11-28 10:42:36 +01:00
Armin Novak
0fb8c9e87e [winpr,crt] Added ConvertMszWCharNToUtf8* 2022-11-28 10:42:36 +01:00
akallabeth
4f7114a140 [winpr,crt] Added ConvertMszUtf8NToWChar*
A conversion function that can handle multistrings (e.g. each element is
'\0' delimited, termination is '\0\0')
2022-11-28 10:42:36 +01:00
akallabeth
5c91c30a18 [winpr,crt] Added new unicode conversion functions
* Added functions converting WCHAR to/from UTF-8 with given buffers
  and proper size_t arguments to have a centralized check for
  integer overflows on RDP deserialization
* Added allocating functions converting WCHAR to/from UTF-8 as
  convenience
2022-11-28 10:42:36 +01:00
akallabeth
5ae159303f [winpr,crt] Added unicode conversion backends
* Support apple with NSString
* Support android via JNI
* Split ICU to own file
2022-11-28 10:42:36 +01:00
akallabeth
00ee213f97 [winpr,android] Unify JNI_OnLoad
* Split JNI_OnLoad and JNI_OnUnload to own module to be usable from more
  than only timezone
* Explicitly call System.loadLibrary('winpr') (and other FreeRDP
  libraries) in android client as JNI_OnLoad is only triggered by that
  and not implicit loading
2022-11-28 10:42:36 +01:00
akallabeth
113290c35c [winpr,string] Use size_t arguments
* Use size_t arguments for ByteSwapUnicode, ConvertLineEndingToLF
  and ConvertLineEndingToCRLF
* Simplify code of line conversion functions
2022-11-28 10:42:36 +01:00
akallabeth
3262e11d1f [winpr,asn] fix too verbose log message 2022-11-24 11:43:01 +01:00
Armin Novak
7b95014157 [winpr,crypto] Split crypto header renamed
* Renamed custom winpr crypto function header
* Added compatiblity header
2022-11-23 09:39:56 +01:00
Armin Novak
d03f230426 [winpr,crypto] Split headers
Split windows API emulation from custom functions
Including both might yield issues with OpenSSL headers
2022-11-21 13:27:08 +01:00
Armin Novak
f81b3b05d2 Fixed -Wtautological-value-range-compare 2022-11-21 10:12:31 +01:00
Armin Novak
7c5652c15a Fixed -Wmissing-prototypes 2022-11-21 10:12:31 +01:00
Armin Novak
a40ade5abc Fixed -Wincompatible-pointer-types 2022-11-21 10:12:31 +01:00
Armin Novak
bc7c4cc6a1 Fixde -Wimplicit-function-declaration 2022-11-21 10:12:31 +01:00
Armin Novak
9adc1e4b08 Fixed -Wunreachable-code-return 2022-11-21 10:12:31 +01:00
Armin Novak
31c1700c0c Fixed -Wunused-variable 2022-11-21 10:12:31 +01:00
Armin Novak
921315fdbf Fixed -Wmissing-variable-declarations 2022-11-21 10:12:31 +01:00
Armin Novak
dacebc62a3 Use Stream_CheckAndLogRequiredLength, fix WLog TAG
* Log stream length requirement violations
* Use proper defines for WLog tags
2022-11-21 09:57:27 +01:00
Armin Novak
43eccb6247 [winpr,io] removed unused unimplemented functions 2022-11-21 09:16:54 +01:00
Mike Gilbert
3053543068 winpr/string.h: #include <stdio.h> for snprintf
Fixes failure with -Werror=implicit-function-declaration.

```
FAILED: libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o
/usr/bin/ccache /usr/bin/cc -DEXT_PATH=\"/usr/local/lib64/freerdp3/extensions\" -DFREERDP_EXPORTS -DNDEBUG -DWITH_OPENSSL -DWITH_VERBOSE_WINPR_ASSERT -DWITH_WAYLAND -DWITH_X11 -DWITH_XKBFILE -D_FILE_OFFSET_BITS=64 -Dfreerdp_EXPORTS -I/home/floppym/src/FreeRDP/winpr/include -I/home/floppym/src/FreeRDP/build/winpr/include -I/home/floppym/src/FreeRDP/build -I/home/floppym/src/FreeRDP/build/include -I/home/floppym/src/FreeRDP/include -Werror=implicit-function-declaration -fPIC -Wall -fvisibility=hidden -Wimplicit-function-declaration -Wredundant-decls -fno-omit-frame-pointer -O3 -DNDEBUG -flto=auto -fno-fat-lto-objects -fPIC -std=gnu11 -MD -MT libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o -MF libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o.d -o libfreerdp/CMakeFiles/freerdp.dir/core/state.c.o -c /home/floppym/src/FreeRDP/libfreerdp/core/state.c
In file included from /home/floppym/src/FreeRDP/libfreerdp/core/state.c:24:
/home/floppym/src/FreeRDP/libfreerdp/core/state.c: In function ‘state_run_result_string’:
/home/floppym/src/FreeRDP/winpr/include/winpr/string.h:186:19: error: implicit declaration of function ‘snprintf’ [-Werror=implicit-function-declaration]
  186 | #define _snprintf snprintf
      |                   ^~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:67:9: note: in expansion of macro ‘_snprintf’
   67 |         _snprintf(buffer, buffersize, "%s [%d]", name, status);
      |         ^~~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:25:1: note: include ‘<stdio.h>’ or provide a declaration of ‘snprintf’
   24 | #include <winpr/string.h>
  +++ |+#include <stdio.h>
   25 |
/home/floppym/src/FreeRDP/winpr/include/winpr/string.h:186:19: warning: incompatible implicit declaration of built-in function ‘snprintf’ [-Wbuiltin-declaration-mismatch]
  186 | #define _snprintf snprintf
      |                   ^~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:67:9: note: in expansion of macro ‘_snprintf’
   67 |         _snprintf(buffer, buffersize, "%s [%d]", name, status);
      |         ^~~~~~~~~
/home/floppym/src/FreeRDP/winpr/include/winpr/string.h:186:19: note: include ‘<stdio.h>’ or provide a declaration of ‘snprintf’
  186 | #define _snprintf snprintf
      |                   ^~~~~~~~
/home/floppym/src/FreeRDP/libfreerdp/core/state.c:67:9: note: in expansion of macro ‘_snprintf’
   67 |         _snprintf(buffer, buffersize, "%s [%d]", name, status);
      |         ^~~~~~~~~
cc1: some warnings being treated as errors
```

Bug: https://bugs.gentoo.org/881695
2022-11-18 06:43:11 +01:00
Richard E. Silverman
7bbb8706ee fix segfault on missing CSP
These routines:

  NCryptOpenStorageProvider()
  winpr_NCryptOpenStorageProviderEx

would segfault with PKCS11 support enabled, if the user did not supply
a service provider name ("CSP"); they assumed the parameter
pszProviderName would always be non-NULL, but it's NULL in that case.
2022-11-16 14:18:22 +01:00
akallabeth
d71174d091 [winpr, crt] Added wcsstr implementation 2022-11-14 09:28:22 +01:00
akallabeth
cf5cb35697 [winpr, crt] Fix wcs*cmp and wcs*len checks 2022-11-14 09:28:22 +01:00
akallabeth
ed57dd37b9 Added function _wcsncmp
* Compare WCHAR strings up to n characters
2022-11-14 09:28:22 +01:00
Armin Novak
843680e543 Clipboard syntesizer replaces path separators
The clipboard expects windows style paths, so replace all / with \
2022-10-28 08:22:43 +02:00
Armin Novak
f9faf3d3d5 Unified synthetic file cleanup 2022-10-28 08:22:43 +02:00
Armin Novak
a7a8e7ee8d Fixed read/write of filedescriptorw times 2022-10-28 08:22:43 +02:00
Armin Novak
096e98d8b5 Moved verbose log message
Do not log expected abort conditions
2022-10-28 08:22:43 +02:00
Armin Novak
dbb1889a54 Removed unused BipBuffer 2022-10-27 10:39:25 +02:00
Armin Novak
4ea4f5e936 Fixed compile error for old openssl 2022-10-27 10:03:32 +02:00
akallabeth
22dce52d15 Add function winpr_MoveFileEx 2022-10-25 13:58:05 +02:00
fifthdegree
78ba60f50f Check for NULL pointer in winpr_Digest_Free 2022-10-24 08:33:57 +02:00
akallabeth
68ad8d5a1c Added missing return in winpr_Digest_New 2022-10-20 19:24:41 +02:00
Armin Novak
2a181c19c5 Added missing include 2022-10-19 20:33:17 +02:00
Armin Novak
a66d9d1706 Improve OpenSSL provider loading
* Added log messages for failure to load a provider
* Add code to clean up loaded providers on shutdown
2022-10-19 20:33:17 +02:00
Armin Novak
1f6476016d Update command line option /sec*
* Deprecate /sec-* flags
* Allow multiple arguments for /sec
2022-10-19 20:31:53 +02:00
fifthdegree
ffe8e45aff Pass bindings through Negotiate on first call 2022-10-19 18:55:38 +02:00