Commit Graph

1988 Commits

Author SHA1 Message Date
Ondrej Holy
b8f33aa59c winpr/crt: Make TestString endian-independent
Wide char strings use always little endian encoding since commit f722dc5.
Use only strings in little endian to make the tests endian-independent.
2016-06-10 18:18:47 +02:00
Ondrej Holy
bbcc0476c7 winpr/crt: Fix endianness in string utils
All WCHAR strings are stored as little endian after commit f722dc5,
therefor WCHAR string utils have to be changed appropriately.
2016-06-10 18:18:39 +02:00
Ondrej Holy
1903537f09 winpr/crt: Make TestUnicodeConversion endian-independent
Half of the tests expects strings in little endian byte order, half of
the tests expects byte order based on a current architecture, so it
obviously can't work on big endian machines. Wide char strings use
always little endian encoding since commit f722dc5. Use only strings
in little endian to make the tests endian-independent.
2016-06-02 11:13:36 +02:00
Ondrej Holy
44ce6b02ed winpr/stream: Make TestStream endian-independent
The TestStream_PeekAndRead expects LE byte order and consequently
fails on BE. Change the test to be endian-independent.
2016-05-31 16:04:16 +02:00
Ondrej Holy
0e353cce2e winpr/ntlm: Fix endianness in NTLM authentication
This patch fixes NTLM authentication to work properly on a big endian
machines. Freerdp exited with the following error without recent commits:
[09:50:20:914] [13821:13822] [ERROR][com.freerdp.core.transport] - BIO_read returned an error: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error
[09:50:20:914] [13821:13822] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_CONNECT_TRANSPORT_FAILED [0x2000D]
[09:50:20:914] [13821:13822] [ERROR][com.freerdp.client.x11] - Freerdp connect error exit status 1

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Ondrej Holy
95a1b53940 winpr/ntlm: Fix endianness in ntlm_av_pair_list
Data in ntlm_av_pair_list are accessed directly, which doesn't work on
big endian machines currently. The recieved data are stored as little
endian. Use conversion macros from endian.h to load and store the data
properly.

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Ondrej Holy
8d468ea6b5 winpr/crt: Fix endianness in WCHAR case conversions
All WCHAR strings are stored as little endian after commit 12dfc5e9,
therefor CharUpperBuffW and CharLowerBuffW have to be changed appropriately
in order to fix NTLM authentication.

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Ondrej Holy
f722dc5c28 winpr/crt: Fix endianness in unicode conversions
Unicode conversions doesn't work on big endian machines currently.
The strings are stored as little endian. Use conversion macros from
endian.h to load and store the data properly.

Let's use wide char strings always as little endian. It seems that
Windows API also always expects data to be little endian, so it
makes sense to require wide char strings as little endian also.

The patches fixes transformations between UTF8 and UTF16 only, which are
used by freerdp. UTF32 transformations are not used by freerdp.

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Ondrej Holy
250998efb8 winpr: Be sure data points to BYTE in endian.h
The conversion macros don't work properly if input data doesn't point
to BYTE. Cast the input data to BYTE to avoid unexpected behavior and
to simplify usage of the macros.

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Ondrej Holy
11221e7e2c winpr: Fix Data_Read_UINT16
There is a bug which causes that higher byte and lower byte contain
first byte of data and second byte of data is lost. The patch fixes
it similarly as it is done in Stream_Read_UINT16.

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Ondrej Holy
6d2ab9cc47 winpr: Fix 64-bit architecture detection
The current definitions wrongly assume the only 64-bit architecture is
x86_64. Use the __ILP64__, __LP64__ and __LLP64__ to correctly define
the size of a long and of pointer.

The patch is needed for platforms such as ppc64, or s360x, otherwise
you can see following warnings:
warning: cast from pointer to integer of different size

The patch is modification of debian downstream patch:
http://anonscm.debian.org/cgit/collab-maint/freerdp.git/tree/debian/patches/1004_64-bit-architectures.patch

Original author is Aurelien Jarno probably.

https://github.com/FreeRDP/FreeRDP/issues/2520
2016-05-30 13:37:15 +02:00
Norbert Federa
e8c4910e2e fix segfaults casused by size_t format specifier
win32/msvc cc does not recognize the %z format specifier which caused
invalid references and segfaults on win32.
Until FreeRDP gets format specifier macros we'll cast size_t to
unsigned long and use the %lu specifier.

Also simplified winpr_backtrace_symbols() a little bit and fixed it
to allocate the correct amount of bytes for the return buffer.
2016-05-27 15:55:28 +02:00
Hardening
00dd6f8c51 Merge pull request #3372 from nfedera/fix-winpr-test-library
winpr/library: fix win32 test and some cleanup
2016-05-27 14:53:12 +02:00
Norbert Federa
d2b2a921f1 winpr/library: fix win32 test and some cleanup
On Windows we seem to have to load the TestLibrary[AB] test libraries
from in same folder the test executable runs.

Also removed the empty RemoveDllDirectory, SetDefaultDllDirectories,
AddDllDirectory tests and the redundant FreeLibrary test.

TestLibrary now works and succeeds on Win32.

sadasd
2016-05-27 14:34:41 +02:00
Norbert Federa
a45ac8dad8 winpr/path: fix PathCchFindExtensionA and more
- PathCchFindExtensionA had an off-by-one error when verifying the
  required null termination
- TestPathCchFindExtension used unicode strings when testing the
  *A (ASCII) functions
- The PathAllocCombineW implementation (which is still buggy has
  hell) used strlen to calculate the lenght of unicode strings

TestPath now succeeds on WIN32
2016-05-26 18:36:02 +02:00
Norbert Federa
9370d98575 winpr/pipe: fix CreateNamedPipe test
GetLastError() was not always checked for ERROR_PIPE_CONNECTED which
indicates success if ConnectNamePipe returns FALSE.

TestPipe now also succeeds on Win32
2016-05-26 13:52:30 +02:00
Norbert Federa
1b231f9dd9 winpr/thread: fix TestThreadCreateProcess
On WIN32 TestThread now works and is expected to succeed
2016-05-25 15:47:58 +02:00
Norbert Federa
aded51f38f winpr/synch: fix tests
TestSynchTimerQueue:
- fixed race condition

TestSynchWaitableTimerAPC:
- Use WaitForSingleObjectEx since the thread must be in an alterable state

TestSynch is now expected to succeed on WIN32
2016-05-24 22:33:27 +02:00
Norbert Federa
386d290015 winpr/synch: fix mutex implementation
- Mutex is recursive on Windows; as a consequence we have to use
  the pthread PTHREAD_MUTEX_RECURSIVE type
- Adapt MutexCloseHandle accordingly
- ReleaseMutex returned TRUE even if pthread_mutex_unlock failed
- Fixed and improved the TestSynchMutex ctest
2016-05-24 15:10:57 +02:00
Bernhard Miklautz
5d030534db winpr/event: fix file descriptor leak
SetEventFileDescriptor overrides the internal file descriptor of the
event but didn't close it. Now if the descriptor is closed if it isn't
marked as attached.
2016-05-23 13:04:44 +02:00
Hardening
4e66df7228 Merge pull request #3333 from akallabeth/memleak_fixes
Memleak fixes
2016-05-13 11:32:48 +02:00
Robert Corrigan
73e13b0b29 KB3153731: May 2016 DST update for Azerbaijan, Chile, Haiti and Morocco 2016-05-12 13:24:21 -04:00
Armin Novak
eacf2b542e Fixed memory leaks. 2016-05-12 10:01:30 +02:00
Marc-André Moreau
6b73757085 Merge branch 'master' of github.com:awakecoding/FreeRDP 2016-05-11 13:13:02 -04:00
Marc-André Moreau
d4c809c4ae winpr: fix definitions of synchronization barrier and interlocked functions 2016-05-11 13:12:44 -04:00
Marc-André Moreau
915b9a15b1 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	winpr/libwinpr/bcrypt/CMakeLists.txt
2016-05-11 11:05:17 -04:00
Bernhard Miklautz
59fbfdb24b Add library libwinpr-tools
libwinpr-tools is a replacement for winpr-makecert-tool.a. Currently
it's basically the same as winpr-makecert-tool.a but in future
functionality that doesn't fit directly in winpr will be added here.
2016-05-03 14:42:08 +02:00
Bernhard Miklautz
81d30cc480 Disable comm tests per default
comm tests require a serial device for testing. If the test environment
isn't available the tests will return errors therefore the tests are
now disabled per default. They can be (re-)enabled by using the cmake
option BUILD_COMM_TESTS.
2016-05-02 16:59:25 +02:00
Bernhard Miklautz
bd7ed27f92 Merge pull request #3305 from akallabeth/dynamic_channel_crash_fix
Dynamic channel crash fix
2016-04-26 11:01:40 +02:00
akallabeth
a62d962bc7 Merge pull request #3250 from mfleisz/cssp_v3
core: Add support for CredSSP version 3
2016-04-26 09:59:40 +02:00
Armin Novak
ee186bec73 ListDictionary handle NULL list argument. 2016-04-26 09:34:12 +02:00
Robert Corrigan
f8c42da561 KB3148851: Updates to Russian Time Zones for 2016 2016-04-13 14:44:30 -04:00
Marc-André Moreau
a192967a5b libwinpr-path: fix missing shlwapi.lib import 2016-03-30 10:58:36 -04:00
Marc-André Moreau
8fcc2aabf1 Merge branch 'master' of github.com:awakecoding/FreeRDP 2016-03-30 10:47:01 -04:00
Marc-André Moreau
cedf6d98e2 freerdp: more UWP porting 2016-03-29 20:34:52 -04:00
Marc-André Moreau
4d629a7999 freerdp: UWP porting 2016-03-29 16:03:15 -04:00
Bernhard Miklautz
9e8c6c99b6 First shot on fixing over linking
If a target is linked against libraries with cmake
(target_link_libraries) and the libraries are not marked as PRIVATE
they are "exported" and in case a other target is linked against this
target it is also linked against *all* (not private) libraries.

Without declaring private libraries PRIVATE a lot of over linking
(linking against unneeded libraries) was done.
2016-03-29 18:14:34 +02:00
Bernhard Miklautz
b184f58c1b winpr/TestFileGetStdHandle: rename variable stdout
stdout shouldn't be used as variable name (can't even be used on
windows).
2016-03-29 18:14:16 +02:00
Marc-André Moreau
2201ac5266 winpr: fix PathFileExists on UWP 2016-03-25 12:20:51 -04:00
Martin Fleisz
98528ea973 winpr: Fix definition of NTSTATUS_FROM_WIN32 2016-03-18 13:45:51 +01:00
Martin Fleisz
1c2d315354 core: Add support for CredSSP version 3 2016-03-18 13:32:13 +01:00
Martin Fleisz
80cd64732f Merge pull request #3164 from akallabeth/windows_UnixChangeFileMode
Implemented UnixChangeFileMode for windows.
2016-03-16 15:19:11 +01:00
akallabeth
0c99d6a4fe Merge pull request #3226 from rjcorrig/#3198
winpr: Updates time zones and fixes bias values
2016-03-16 13:32:51 +01:00
Robert Corrigan
a4f0089d45 winpr_detect_windows_time_zone should have void argument 2016-03-16 08:29:21 -04:00
Armin Novak
3d23a772f6 Updated ConvertToUnicode return check. 2016-03-16 13:08:06 +01:00
Bernhard Miklautz
1b1563658e Merge pull request #3214 from hardening/fix_systemd_appender
Make systemd appender honor layout and logs off
2016-03-16 11:58:31 +01:00
Marc-André Moreau
9211f44e46 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2016-03-15 20:19:15 -04:00
Robert Corrigan
16796b9c9d winpr: Updates time zones and fixes bias values 2016-03-14 11:38:31 -04:00
Martin Fleisz
0249b09677 winpr: Fix definition of PathFileExists on Win32 2016-03-14 14:08:48 +01:00
Hardening
19494bd75a Make systemd appender honor layout and log off 2016-03-10 23:41:12 +01:00