Commit Graph

2050 Commits

Author SHA1 Message Date
Martin Fleisz 07d5d1615b Merge pull request #3059 from akallabeth/zlib_memleak_fix
Fix memory leak in lodepng_zlib_compress
2016-01-19 09:27:50 +01:00
Armin Novak 20ada7d347 Fix pkg-config generation. 2016-01-18 22:46:29 +01:00
Armin Novak d2ab27626a Fix memory leak in lodepng_zlib_compress 2016-01-15 10:16:08 +01:00
Armin Novak 9b160d4570 Fixed uninitialized value. 2016-01-15 09:33:21 +01:00
Bernhard Miklautz 3232be51b0 Use major version only for SOVERSION
For 2.0+ major will be increased if ABI/API isn't compatible anymore.
2016-01-14 10:47:57 +01:00
Bernhard Miklautz 7c03db342c add parameter buildconfig
Extend winpr and client/common to support a new option "/buildconfig".
When used build the following build specific information is print:
* cmake options
* cflags
* compiler
* target architecture
* cmake build type
2016-01-12 17:32:33 +01:00
Bernhard Miklautz 6fa3608111 cleanup cmake exports and pkg-config files
With this commit the "exported" components (usable with pkg-config and
cmake find module package)
* winpr - winpr library and headers
* freerdp - core library and headers
* freerdp-client - client specific library
* freerdp-server - server specific library
* rdtk - rdtk headers and library

To allow the installation of multiple different version (different major
number) the include files were moved into the respective sub folder:
freerdp -> freerdp{MAJOR}/freerdp (currently freerdp2/freerdp/)
winpr -> winpr{MAJOR}/winpr (currently winrp1/winpr/)
rdtk -> rdpk{MAJOR}/rdtk (currently rdtk0/rdtk/

The generated pkg-config and cmake find modules now also include the major
version number. Currently the following pkg-config are generated and
installed.
* winpr1
* freerdp2
* freerdp-server2
* freerdp-client2
* rdtk0

As cmake is able to handle multiple versions out of the box the
following can be used to find a specific module:

find_package(WinPR)
find_package(FreeRDP)
find_package(FreeRDP-Server)
find_package(FreeRDP-Client)
find_package(RdTk)

As cmake doesn't automatically resolve dependencies for packages it is
necessary to manually include the requirements. For example if
FreeRDP-Client is required WinPR and FreeRDP need to be included
(find_package) as well.

This commit also fixes the installation when STATIC_CHANNELS are built.
WITH STATIC_CHANNELS all channels are linked into libfreerdp-client, for
this all channels are generated as linker archive and linked together in
the final step. Before the intermediate linker archives were, although
not required and useful, installed. Same applies for server side
channels.
2016-01-12 17:32:33 +01:00
Bernhard Miklautz b8136a3769 build: remove FREERDP_MONOLITHIC_BUILD
FREERDP_MONOLITHIC_BUILD was obsolete for a while and unused
2016-01-12 17:32:32 +01:00
Bernhard Miklautz 25363c05d6 update .gitignore files
* add missing entries
2016-01-12 17:32:32 +01:00
Armin Novak a9e3368d44 Fixed broken duplicate define. 2016-01-12 16:38:53 +01:00
Bernhard Miklautz aa2709a999 winpr: create a specific winpr nt file handle
There exist two definitions of WINPR_FILE: in file/ and in nt/.
Both are different definitions used differently. Therefore split them
into WINPR_FILE and WINPR_NT_FILE.
2016-01-12 16:10:25 +01:00
Bernhard Miklautz 97edeca204 Merge pull request #2874 from akallabeth/stdtypes
Using stdint.h and stdbool.h for type definitions
2015-12-17 16:37:54 +01:00
Armin Novak d25855b287 Added comment to generated defines. 2015-12-17 16:25:16 +01:00
Armin Novak 33500b400d Removed obsolete wtypes.h 2015-12-17 13:30:41 +01:00
Armin Novak ef23b4568c Renamed HAVE_STDXX_H in public header. 2015-12-17 13:15:00 +01:00
Armin Novak f8565b8b75 Generating wtypes.h now with used defines. 2015-12-17 12:01:52 +01:00
Armin Novak 120e5e2d43 Moved header detection defines to config.h 2015-12-17 11:28:03 +01:00
Armin Novak 864f06b161 Added missing include. 2015-12-17 10:59:59 +01:00
Bernhard Miklautz d03b38765a Merge pull request #2816 from akallabeth/known_hosts_locking
Known hosts locking
2015-12-16 19:03:15 +01:00
Bernhard Miklautz 06307f1ac1 winpr/file: disable buffering
When FILE streams are used per default buffering is enabled but
WriteFile/ReadFile shouldn't do any extra buffering.
2015-12-16 18:47:42 +01:00
Bernhard Miklautz 79707cb7fd makecert: fix installation of .a file
Since cb958ba9c6  libwinpr-makecert-tool.a
wasn't installed anymore.
2015-12-16 17:45:59 +01:00
Armin Novak 5b2f4f50a0 Fixed FILE* leak and EndOfFile settings. 2015-12-16 17:35:59 +01:00
Armin Novak 03a1ff814d Fixed unused warnings. 2015-12-16 15:15:46 +01:00
Armin Novak 6ed43cd6ec Updated pdb file locations.
Now supporting generators NMake and Visual Studio.
2015-12-15 12:08:35 +01:00
Armin Novak cb958ba9c6 Added pdb files to package target.
Fixed name collision with freerdp-shadow targets.
2015-12-15 12:07:21 +01:00
Armin Novak e223684fcb args arrays static.
When creating static builds the args arrays collided due
to global visibility.
2015-12-15 12:07:21 +01:00
Armin Novak d339b986de Fixed broken #if #endif. 2015-12-14 14:18:51 +01:00
Armin Novak 533e14745e Fixed broken objective C detection. 2015-12-14 14:18:51 +01:00
Armin Novak ff24885ff3 Fixed mixup of type defines. 2015-12-14 14:18:51 +01:00
Armin Novak 6e69caad9f Disabled definition of BOOL for objective C 2015-12-14 14:18:50 +01:00
Armin Novak 63894eb4e7 Using stdint.h and stdbool.h for type definitions
When stdint.h or stdbool.h are detected, use these
standard types for definitions in wtypes.h
2015-12-14 14:18:50 +01:00
Armin Novak 6010932984 Fixed possible race on file creation. 2015-12-14 09:32:42 +01:00
Armin Novak f0e3a2d845 Added extended file seek tests. 2015-12-10 10:40:14 +01:00
Armin Novak fe51dd1e10 Fixed logging, added file name. 2015-12-10 10:39:37 +01:00
Armin Novak 400d1b8b96 Fixed open mode for fdopen. 2015-12-10 10:37:44 +01:00
Armin Novak 19744f3bb8 Added additional file functions and tests. 2015-12-09 18:29:16 +01:00
Armin Novak d0e3528c8e Added winpr_strerror function. 2015-12-09 18:27:37 +01:00
Armin Novak a04f1f8fc5 Added missing _snprintf define. 2015-12-09 18:27:05 +01:00
Xiaodong Qi 602d2715a2 Fix compilation error under Visual Studio 2010
Visual Studio 2010 use a compiler that supports only C89, which
only supports declaring variable at top of a local scope. Moving
scope variable to the top of function should solve this problem.
2015-11-29 00:14:29 +08:00
Marc-André Moreau 8cc799f599 libwinpr-synch: fix non-Win32 build 2015-11-26 09:43:23 -05:00
Marc-André Moreau c0c9c9353e winpr: more Win32 fixes 2015-11-25 14:41:32 -05:00
Marc-André Moreau 2f5d159448 winpr: fix WinXP backwards compatibility 2015-11-25 13:46:10 -05:00
ilammy 4b67513f3c winpr/clipboard: add CF_RAW clipboard format ID
This fixed-ID format is aleady used and supported implicitly by
wClipboard, so we are just codifying its ID for the client use.
2015-11-14 19:03:10 +02:00
Hardening be8f8f7238 Merge pull request #2970 from bmiklautz/prep_2.0
2.0 preparations
2015-11-11 12:54:34 +01:00
Bernhard Miklautz bff63b3ee2 wlog: cleanup API includes
Only include necessary header files.
2015-11-10 16:29:09 +01:00
Bernhard Miklautz be0845b46c wlog/journald: don't set a default identifier
Don't set the identifier to "winpr" as default value because journald
will use the programs name as default if no identifier is set.
This way a program using WLog doesn't need to set an identifier (except
it want something different then it's name).
2015-11-10 13:40:52 +01:00
Bernhard Miklautz 34c707304b wlog: change variable naming and fix documentation
* change State to active and make it BOOL since it's only got two
  used values
* fix some typos in the documentation
2015-11-10 12:05:23 +01:00
Hardening aff69ab163 Merge pull request #2962 from akallabeth/client_build_fixes
Allow client build to be disabled
2015-11-10 09:59:45 +01:00
Bernhard Miklautz 25137988fe wlog: fix build on windows 2015-11-09 19:47:51 +01:00
Bernhard Miklautz 57f952bbbc wlog: fix android build 2015-11-09 19:37:02 +01:00
Bernhard Miklautz 0cdb4f7924 Fix compiler warnings
gcc (Debian 4.9.2-10) 4.9.2

winpr/libwinpr/thread/argv.c: In function ‘CommandLineToArgvA’:
winpr/libwinpr/thread/argv.c:94:6: warning: unused variable ‘index’ [-Wunused-variable]
  int index;

winpr/libwinpr/file/test/TestFileGetStdHandle.c: In function ‘TestFileGetStdHandle’:
winpr/libwinpr/file/test/TestFileGetStdHandle.c:44:2: warning: implicit
	declaration of function ‘CloseHandle’ [-Wimplicit-function-declaration]
  CloseHandle(stdout);
    ^
libfreerdp/codec/test/TestFreeRDPRegion.c: In function ‘test_norbert2_case’:
libfreerdp/codec/test/TestFreeRDPRegion.c:697:6: warning: unused variable ‘i’ [-Wunused-variable]
  int i;

channels/cliprdr/server/cliprdr_main.c: In function ‘cliprdr_server_receive_format_list’:
channels/cliprdr/server/cliprdr_main.c:636:24: warning: unused variable ‘cliprdr’ [-Wunused-variable]
  CliprdrServerPrivate* cliprdr = (CliprdrServerPrivate*) context->handle;
                        ^
channels/cliprdr/server/cliprdr_main.c: In function ‘cliprdr_server_init’:
channels/cliprdr/server/cliprdr_main.c:1097:24: warning: unused variable ‘cliprdr’ [-Wunused-variable]
  CliprdrServerPrivate* cliprdr = (CliprdrServerPrivate*) context->handle;
2015-11-09 19:26:34 +01:00
Bernhard Miklautz 67368b2ec7 Adapt error level for debug messages
When using xfreerdp a regular invocation should really only report grave
problems as error. "Regular" messages should be either info or even
debug.
2015-11-09 18:27:38 +01:00
Bernhard Miklautz 07417599ce wlog: rework, cleanup and stabilize API
* only expose necessary functions and types in header
* don't expose appender internals
* add generic function WLog_ConfigureAppender to have the possibility
  to configure appender specific settings
* detect appender availability if WLog_SetLogAppenderType or
  WLog_Appender_New return FALSE or NULL respectively the appender isn't
  available or the initialization failed. This is very useful for the
  use with optional appenders.
* add Free to the appender interface. At the time of the Free the
  appender is known and available so it can be called directly (instead
  of calling the right function according to the type)
* make all appender internal function static
* all appenders return the generic wLogAppender type now. Typecasts
  are internally done where necessary this abstracts the appenders more
  cleanly
2015-11-09 18:25:45 +01:00
Bernhard Miklautz d73c4898c1 Add build-config.h
build-config.h should contain configure/compile time settings that are
relevant for projects that use FreeRDP.

For example the compiled in plugin search paths.
2015-11-09 15:54:22 +01:00
Norbert Federa 2ac195e8eb Merge pull request #2964 from hardening/udp_appender
Add an UDP appender to wLog
2015-11-09 13:42:02 +01:00
David FORT 458aaa1213 Take in account @nfedera's remarks 2015-11-06 23:17:11 +01:00
Norbert Federa d6b5b906f4 winpr/argv: fix CommandLineToArgvA memory access
- fixed access of unitialized memory beyond terminating null
- minor simplifications
2015-11-05 18:10:05 +01:00
David FORT 5fbf26acf2 Add an UDP appender to wLog
This appender allows to receive the logs over a network connection using UDP packets.
You can see the logs using a listening netcat, for example: nc -ul 127.0.0.1 20000.
2015-11-04 18:11:19 +01:00
Armin Novak b5288daea5 Fixed return values. 2015-11-03 17:32:42 +01:00
Hardening 3d6e1fb418 Merge pull request #2951 from bmiklautz/friday
Misc fixes
2015-11-02 10:50:16 +01:00
David FORT 2a8de84342 Take in account @bmiklautz remarks
* I have added a function to set the journal identifier
* the appender name has been changed from SYSTEMD to JOURNALD
2015-11-01 21:34:03 +01:00
David FORT e3915b66b7 Fix the env var leak 2015-10-30 20:22:25 +01:00
David FORT 89156e53b7 Use unbuffered output 2015-10-30 20:20:42 +01:00
David FORT 9ea301983d Adds a systemd journal appender 2015-10-30 14:50:14 +01:00
Bernhard Miklautz a011719831 Merge pull request #2940 from hardening/syslog_appender
Add a wLog syslog appender
2015-10-29 18:44:14 +01:00
David FORT 8d2aadfccd Fixed a warning 2015-10-29 18:33:42 +01:00
David FORT c2a322f4d0 Support syslog type for the WLOG_APPENDER env var 2015-10-29 18:31:22 +01:00
David FORT 0cf2a0e50b Don't include config.h in public headers
In fact we don't need the ifdefery in public headers, so don't include unneeded
config.h file.
2015-10-29 10:32:58 +01:00
David FORT 382993d4d5 Include config.h file when needed 2015-10-27 21:45:26 +01:00
Bernhard Miklautz c70559d128 winpr API: add EnvironmentBlockToEnvpA
* expose EnvironmentBlockToEnvpA
* cleanup includes in process.c
* removed unused "flag" variable in _CreateProcessExA
* make ProcessHandleCloseHandle static
2015-10-23 18:38:42 +02:00
Bernhard Miklautz ab05a79c21 winpr/stream: don't allow 0-size streams 2015-10-23 18:38:41 +02:00
Bernhard Miklautz a9d81ad083 winpr: fix compiler warning
winpr/libwinpr/utils/wlog/wlog.c: In function ‘WLog_PrintMessageVA’:
winpr/libwinpr/utils/wlog/wlog.c:234:7: warning: ‘status’ may be
		used uninitialized in this function [-Wmaybe-uninitialized]
	BOOL status;
	      ^

gcc 4.9.2
2015-10-23 18:37:39 +02:00
Martin Fleisz 08cbcb3577 wlog: Fix variable definitions 2015-10-23 12:08:20 +02:00
David FORT d9080312bc Adapt to last wLog changes 2015-10-22 10:54:21 +02:00
David FORT 720c879661 Add a wLog syslog appender 2015-10-22 10:37:49 +02:00
Marc-André Moreau 1b5f574711 winpr: fix OpenSSL includes 2015-10-21 11:36:37 -04:00
Martin Haimberger b2398b3a9a wlog: fixed return values
wlog used to return an int but the only meaning
of the return value was:

 * negative ... error
 * 0 or positive ... success

but the positve returned value was 1 or some id of some
subsystem, nothing meaningful for the caller.

For a more meaningful returnvalue we now use BOOL.

If something goes wrong FALSE is returned.
2015-10-21 01:11:06 -07:00
Marc-André Moreau 863939fd58 Merge pull request #2919 from realjiangms/fix_allow_empty_password
Sec/NLA: Support passwordless (blank password) login with NLA.
2015-10-13 10:40:28 -04:00
Marc-André Moreau 329194b87e libwinpr-crypto: fix OpenSSL 1.0 HMAC API change 2015-10-13 09:54:59 -04:00
Marc-André Moreau 6ab29da576 libwinpr-crypto: fix error checking 2015-10-13 09:43:26 -04:00
Marc-André Moreau 0a7e07a3a5 libwinpr-crypto: avoid linking to less common digests and ciphers 2015-10-13 09:13:52 -04:00
Marc-André Moreau 87780a850d Merge branch 'master' of github.com:FreeRDP/FreeRDP into mbedtls 2015-10-09 15:58:50 -04:00
Marc-André Moreau 4f769866d7 winpr: make clean non-OpenSSL build possible (without schannel, makecert) 2015-10-09 15:57:41 -04:00
Marc-André Moreau 82afb0f1ee libwinpr-crypto: add generic digest API and OpenSSL compatible key derivation 2015-10-09 15:23:15 -04:00
zihao.jiang a7f4685c09 Sec/NLA: Support passwordless (blank password) login with NLA.
It was supported in freerdp 1.0.2 but not supported in lastest master.
We should take empty password if it is explicitly specified with /v option.
If a password is not specified, we could first try SAM file. If the user entry does not exist, prompt for password.
2015-10-10 01:48:41 +08:00
Marc-André Moreau 54292f29ea libwinpr-crypto: add generic cipher API with OpenSSL/mbedtls support 2015-10-09 12:15:31 -04:00
Marc-André Moreau 87c42127c7 libwinpr-sspi: remove OpenSSL dependency in NTLM SSPI module 2015-10-08 16:48:58 -04:00
Marc-André Moreau 5bff1d0fdf libwinpr-crypto: add rand and RC4 functions with OpenSSL/mbedtls 2015-10-08 16:26:37 -04:00
Marc-André Moreau 7521ecd759 libwinpr-crypto: add basic hashing and HMAC support with OpenSSL/mbedTLS 2015-10-08 13:58:55 -04:00
Marc-André Moreau ac62d43e0f winpr: isolate OpenSSL 2015-10-06 10:56:24 -04:00
Marc-André Moreau 94a2f9533e winpr: start porting to non-OpenSSL 2015-10-05 16:23:44 -04:00
Martin Fleisz 2d641c4dd4 Merge pull request #2864 from bjcollins/smartcard_same_name_readers
Give unique aliases for smartcards with the same name, so that two re…
2015-10-01 13:45:20 +02:00
Marc-André Moreau 70b037145e libwinpr-synch: fix broken FD_ISSET check caused by hidden type cast from int to char 2015-09-18 11:38:27 -04:00
Marc-André Moreau 8a5c55788b libwinpr-sspi: don't warn about non-error security statuses 2015-09-17 11:16:20 -04:00
Martin Fleisz 912cd96321 Merge pull request #2887 from FreeRDP/mh-file-api-extension
winpr/file: extend API
2015-09-15 15:57:56 +02:00
Marc-André Moreau 2c3c6930c3 Merge pull request #2888 from awakecoding/master
fix ARM64 data type portability
2015-09-15 09:12:00 -04:00
MartinHaimberger db2ce49a98 Merge pull request #2763 from akallabeth/nla_null_auth
Fixed server and client NLA state machine for NULL identity.
2015-09-15 14:53:55 +02:00
MartinHaimberger d4d360f6a4 Merge pull request #2859 from akallabeth/resource_leak_fix
Fixes API misuse and logic errors
2015-09-15 14:45:42 +02:00
Martin Haimberger 925e4ea4d4 winpr/file: extend API
added windows code
fixed compiler issue
2015-09-15 04:14:30 -07:00
Bernhard Miklautz 074854735f winpr/file: extend API
Add function GetFileHandleForFileDescriptor to get
a file handle for a valid file descriptor.
2015-09-15 02:16:36 -07:00
Marc-André Moreau 01b52d08d7 winpr: fix ARM64 data type portability 2015-09-14 14:34:24 -04:00
Bryan Everly 37b3881f06 Merge remote-tracking branch 'upstream/master' 2015-09-14 13:21:00 -04:00
Bryan Everly bd149a284d Cleaned up previous OpenBSD change per recommendation 2015-09-14 13:20:11 -04:00
MartinHaimberger 735383b7f5 Merge pull request #2877 from bmiklautz/filehandling
winpr/file refactoring and regular file support
2015-09-14 17:15:50 +02:00
Armin Novak e685f13e0b Added ORIENTATION_PREFERENCE from WinUser.h. 2015-09-10 13:26:37 +02:00
Bernhard Miklautz 0d9dfb974d winpr/file: integrate pull request feedback
* simplify RemoveDirectory
* move std handle function into an extern C block
2015-09-10 11:50:10 +02:00
Bernhard Miklautz 0f5e7c60a7 winpr/file: don't close stdin/stdout/stderr
If the handle is closed stdin/stdout/stderr should be left open.
2015-09-09 17:07:40 +02:00
Bernhard Miklautz 8091530779 winpr/file: fix ios build
comm is only build on linux.
2015-09-09 17:07:13 +02:00
Bernhard Miklautz 6b52a2e5cc winpr/file: initial regular file support
Add initial support for "regular" files. First implemented call is
GetStdHandle to get stdin/stdout/stderr.
2015-09-09 16:47:03 +02:00
Bernhard Miklautz 204ae5462a winpr/file: refactoring
The used method for initalizing and registering the handle creators
had certain disadvantages like that it was necessary to have the creators
initialized before the first call to CreateFile. In case of comm it
wouldn't have been possible to open an comm port without calling any
other call related function first.
Now the handle creators are initialized the first time CreateFile is
called. This way it is also possible to ensure a certain order of the
handler invocations.

This commit also splits out the client side named pipe code from
the generic file handling (now called generic.c instead of file.c) and
uses the new handle creator infrastructure to register.
2015-09-09 15:48:59 +02:00
Bernhard Miklautz 868add7a51 Merge pull request #2873 from mfleisz/makecert_change
makecert: Remove key usage attribute
2015-09-07 11:15:51 +02:00
Martin Fleisz 899d0874b8 makecert: Remove key usage attribute
The original makecert tool won't add this tribute to a generated
certificate. Adding this attribute might cause problems when using the
certificate with other apps (i.e. Qt SSL).
2015-09-07 10:43:19 +02:00
MartinHaimberger d971116457 Merge pull request #2765 from akallabeth/connect_abort
Connect abort and unified TCP connect
2015-09-07 10:05:24 +02:00
Armin Novak 7d8ab23877 WSAEvent fixes ported from realjiangms pull 2870. 2015-09-05 15:18:01 +02:00
Armin Novak ce479e312a Fixed uninitialized environment block. 2015-09-03 13:37:16 +02:00
bjcollins ac67e25007 Give unique aliases for smartcards with the same name, so that two readers do not end up with the same alias. 2015-09-02 12:11:47 -05:00
Armin Novak 6c74dbbe25 Reverted broken malloc size fix. 2015-09-02 13:57:04 +02:00
MartinHaimberger 74817efbdb Merge pull request #2852 from bmiklautz/process_env
Update CreateProcess and rfx
2015-09-02 10:09:11 +02:00
Armin Novak 6c288bd0f2 Fixed zero length allocation. 2015-09-01 12:25:43 +02:00
Armin Novak 2c7a20d8c0 Fixed uninitialized memory. 2015-09-01 12:25:43 +02:00
Armin Novak 205878383d Fixed array out of bound access. 2015-09-01 12:25:43 +02:00
Armin Novak cdf884fd45 Fixed broken structure comparison. 2015-09-01 12:25:43 +02:00
Armin Novak cb7927756d Fixed resource leak. 2015-09-01 11:31:12 +02:00
Armin Novak 5cad081cc8 Fixed memory leak. 2015-08-28 11:07:25 +02:00
Bernhard Miklautz 72f13aeacb CreateProcess: add stdin/out/err redirection
When launching a new process stdin/stdout/stderr can be redirected by
passing the corresponding HANDLEs in the passed lpStartupInfo structure.
This is required for example if a pipe should be used as stdin/stdout.

If set in lpStartupInfo the file descriptor of the passed handle is
now used. The test was updated accordingly.
2015-08-28 10:41:23 +02:00
Marc-André Moreau e1e4d2ae98 Merge pull request #2827 from HenryJacques/winpr_cleanup
Remove unused variable in RegQueryValueExA()
2015-08-27 10:11:50 -04:00
Armin Novak 134a16d522 Fixed WSAEventSelect mode reset. 2015-08-27 15:33:06 +02:00
Armin Novak d557690426 x509_get_default_name tries to get FQDN before hostname now. 2015-08-25 17:44:03 +02:00
Armin Novak 1abd652530 Fixed GetComputerNameExA and GetComputerNameA. 2015-08-25 17:43:22 +02:00
HenryJacques e9a7da3b4e Remove unused variable 2015-08-05 18:38:50 +02:00
Martin Haimberger 008d9f3b79 fixed misc *_free functions to accept NULL
Following types of collections support now
NULL in the free call:

* ArrayList
* BitStream
* ContdownEvent
* Dictionary
* KeyValuePair
* MessageQueue
2015-07-30 07:02:36 -07:00
Martin Haimberger 479157b69c winpr: WaitFor*Ojbect/s set lastError now 2015-07-30 02:52:11 -07:00
Marc-André Moreau 611c194f80 Merge pull request #2801 from bmiklautz/fix/thread
winpr/thread: small cleanups
2015-07-28 08:47:06 -04:00
Marc-André Moreau b33ea8aee9 Merge pull request #2804 from bmiklautz/fix/misc
Misc fixes
2015-07-28 08:46:27 -04:00
Marc-André Moreau 06c3f2fca4 Merge pull request #2793 from rkondratenko/pcsclite-transactions
Fix for transactions support for Smart Cards
2015-07-28 08:44:58 -04:00
Bernhard Miklautz c3ea07f3d9 winpr/thread: don't close invalid file descriptors
In case the file descriptor is -1 don't call close.
2015-07-24 14:57:47 +02:00
Bernhard Miklautz 81d422588e winrp/thread: don't call pthread_exit on return
As the pthread_exit man page states pthread_exit is called implicitly
when the start function returns.
2015-07-24 14:52:31 +02:00
Bernhard Miklautz 4250f3f030 winpr/event: remove critical section
The critical section isn't required and not used anymore since
commit 8a2220a3d9.
2015-07-24 13:29:48 +02:00
Bernhard Miklautz ca150f2255 winpr/thread: small cleanups
Also adds error checking of winpr_StartThread in winpr_StartThread.
2015-07-23 11:52:49 +02:00
Rostislav Kondratenko 3f81ff87a6 Removing private context on hCard so that transaction will properly unlock when context is released. 2015-07-17 18:13:41 +03:00
Rostislav Kondratenko f2863fabf5 Re-enabled PCSC-Lite transactions and fixed smartcard deinitialization so it will release all contexts to unblock calls waiting for transactions 2015-07-17 16:37:44 +03:00
Armin Novak 9af2e22d51 Fixed mutex unlocking and return checks. 2015-07-16 17:07:29 +02:00
Martin Fleisz 1a6aba0130 winpr/tools: Fixed x509_get_default_name failing with long computer names 2015-07-15 11:47:01 +02:00
MartinHaimberger b06d83ba80 Merge pull request #2766 from akallabeth/snprintf_to_sprintf_s
Replaced snprintf with sprintf_s
2015-07-15 09:47:43 +02:00
Bernhard Miklautz 1a0253ef93 winpr/handle: define WINPR_FD_ on all platforms 2015-07-14 12:21:24 +02:00
Bernhard Miklautz 68e8569110 winpr/synch: remove the dependency on winsock.h
winsock.h pulls in a lot of defines and dependencies that are not
required and partially unwanted in winpr's core (for parts that are not
related to network). In order to get rid of this dependency and have an
independent defines for extended winpr functions the WINPR_FD_* defines
are used internally (and for exposed functions). Where required, like in
WSAEventSelect, the FD_* is mapped to WINPR_FD_*.
2015-07-14 11:39:41 +02:00
Armin Novak 48ccf73a36 More SSPI logging. 2015-07-08 17:41:22 +02:00
Armin Novak 7360cb638a Erasing memory on credentials or SecBuffer free. 2015-07-08 17:41:21 +02:00
Armin Novak cf9f975341 Replaced snprintf with sprintf_s 2015-07-03 13:26:15 +02:00
Armin Novak 776f15e135 Fixed inverted bAttached setting.
If bAttached is TRUE, the resources of the event are not
cleaned up on CloseHandle.
2015-07-03 12:42:04 +02:00
Armin Novak c21de0dae6 Fixed pr comments. 2015-07-03 11:13:48 +02:00
Armin Novak d18b0fbeb4 Handle API updated. 2015-07-03 09:52:52 +02:00
Armin Novak 77204aa6b6 WSAEventSelect: Handle lNetworkEvents == 0
WSAEventSelect did ignore the lNetworkEvents argument.
In case this argument is 0, the non blocking socket must
be set to blocking again to mimic windows behavior.
2015-07-03 09:29:36 +02:00
Armin Novak 6243a9374b Added write event support to handle functions.
Allows the WinPR HANDLE functions WaitForSingleObject and
WaitForMultipleObjects to signal in case of write events.
This is used by CreateFileDescriptor and SetEventFileDescriptor,
which got an API change accomodating for this new feature.
2015-07-03 09:29:18 +02:00
Armin Novak 7dc96c412f Added convenience function winpr_log_backtrace. 2015-07-03 09:22:02 +02:00
Bernhard Miklautz c7adb569ff CreateProcess: fix setting of default handler
If SA_SIGINFO isn't set in the flags sa_handler is used
instead of sa_sigaction.

This fixes also the compiler warning:

FreeRDP/winpr/libwinpr/thread/process.c: In function ‘_CreateProcessExA’:
FreeRDP/winpr/libwinpr/thread/process.c:282:20: warning: assignment from
       incompatible pointer type [enabled by default]
2015-07-02 12:25:48 +02:00
Bernhard Miklautz be53e9e029 CreateProcess: two fixes
* change to lpCurrentDirectory if set even if no token was supplied
* fix wrong check - add missing !

This was part of akallabeth's PR #2714.
2015-07-02 12:05:46 +02:00
Norbert Federa c84e90bf06 winpr: fix CreateProcess signal handler issues
The calling thread of CreateProcess can be in any library and
can have arbitrary signal masks and handlers.

We now save the caller's mask and  block all signals before forking.
After fork:
- child resets the handlers and unblocks all signals.
- parent restores the caller's original signal mask.
2015-07-02 11:28:06 +02:00
Armin Novak 78eeb861d5 Fixed mixed declarations and code. 2015-07-01 16:20:56 +02:00
Norbert Federa 1c43a6e115 Merge pull request #2738 from bmiklautz/ffuncs
hardening: check fread and fwrite return values
2015-07-01 13:02:32 +02:00
Martin Fleisz d64195d46a makecert: Fix incorrect return value check 2015-06-30 08:14:28 +02:00
Martin Fleisz 15473557da makecert: Formatting 2015-06-29 18:10:59 +02:00
Martin Fleisz bdf02d631e makecert: Add strdup checks 2015-06-29 18:07:26 +02:00
Martin Fleisz 5632773808 makecert: Fix double free crashes 2015-06-29 17:49:13 +02:00
Bernhard Miklautz 1cee185e3c hardening: check fread and fwrite return values 2015-06-26 20:38:30 +02:00
Marc-André Moreau 5ec19d2045 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-06-26 14:00:03 -04:00
Norbert Federa ac95b7274e Merge pull request #2727 from akallabeth/leak_fixes_reformat
Fixed leaks, NULL dereferences and broken init.
2015-06-26 15:01:08 +02:00
Hardening b411c11f6e Merge pull request #2729 from akallabeth/win_reg_key_by_vendor_product_define
Replaced hard coded registry keys with cmake defines.
2015-06-26 11:15:09 +02:00
Armin Novak b81aaa9cc2 Fixed mutex trylock in MutexCloseHandle. 2015-06-25 12:24:28 +02:00
Bernhard Miklautz cbbc680131 clipboard: fix of by one error on cleanup 2015-06-25 11:53:03 +02:00
Armin Novak e8bfa29bd2 Replaced registry keys with cmake defines. 2015-06-24 14:02:48 +02:00
Bernhard Miklautz 9f6fa7ef4c Fix possible endless loops on cleanup.
Some cleanup code possibly create endless loops because an unsigned
type was used as run variable but the check was >= 0 in the for loop.
2015-06-24 12:26:13 +02:00
Armin Novak 6ed7b7b4b3 Fixed a resource leak. 2015-06-24 09:29:52 +02:00
Armin Novak f177430acc Fixed a resource leak. 2015-06-24 09:29:13 +02:00
Armin Novak 6698e24228 Fixed leaks, NULL dereferences and broken init. 2015-06-23 21:29:21 +02:00
Armin Novak fbbc1affd0 ifdef variables used with specific build options. 2015-06-23 16:20:59 +02:00
Armin Novak 063b10e8e4 Fixed memory leak. 2015-06-23 12:30:19 +02:00
Bernhard Miklautz af81a91ea7 windows: fix compilation and warnings 2015-06-22 19:31:25 +02:00
Bernhard Miklautz 06502e6a91 misc: integrate pull request feedback 2015-06-22 19:24:30 +02:00
Bernhard Miklautz fc6a3cf3c1 sspi/ntlm: integrate pull request comments 2015-06-22 19:23:58 +02:00
Bernhard Miklautz 1b8dd139a9 cmd line: add missing checks
* strdup
* some allocs
2015-06-22 19:23:57 +02:00
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
David FORT 16d36e3083 A malloc() pass on WinPR
This patch treats remaining non-checked mallocs. And changes to calloc in places
where it makes sense
2015-06-22 19:10:00 +02:00
Bernhard Miklautz 77927c213e android: fix misc compiler warnings
with gcc version arm-linux-androideabi-gcc (GCC) 4.8
2015-06-22 19:09:59 +02:00
Bernhard Miklautz 7d49893ddf winpr/wtsapi: disable tests that block on windows 2015-06-22 19:09:59 +02:00
Bernhard Miklautz ab8d83c8fc winpr/thread: fix test compilation on windows
Use DWORD instead of QWORD.
2015-06-22 19:09:59 +02:00
Bernhard Miklautz bf73f4e4f1 Fix unchecked strdups
* add missing checks
* adapt function return values where necessary
* add initial test for settings
2015-06-22 19:09:59 +02:00
Marc-André Moreau 85a2caaace Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-06-22 10:24:25 -04:00
Marc-André Moreau 3b3ffce042 Merge pull request #2705 from akallabeth/sspi_fix_v2
Sspi fix v2 - Fixes static build
2015-06-22 10:19:22 -04:00
Marc-André Moreau 093aaa4dc0 Merge pull request #2636 from xhaakon/master
Fix crashes in shadow server
2015-06-22 09:15:37 -04:00
Hardening c8731eaa2c Merge pull request #2706 from nfedera/nf-fix-reset-event
winpr/synch: fix ResetEvent & improve CTest
2015-06-18 09:28:31 +02:00
Vic Lee 2e11eac79a Merge pull request #2675 from akallabeth/path_make_path
Added PathMakePath function.
2015-06-18 02:43:47 +00:00
Norbert Federa f503f4cf0b winpr/synch: fix ResetEvent & improve CTest
Unless there is an invalid parameter or internal error, ResetEvent
must return TRUE, even if the object is in nonsignaled state.

Also fixed and improved the CTest TestSynchEvent to test for the
expected/correct SetEvent and ResetEvent return values.
2015-06-17 14:13:28 +02:00
Armin Novak 5dff9c4f9e Removed duplicate function tables, respecting WITH_NATIVE_SSPI 2015-06-17 13:24:11 +02:00
Vic Lee 145fc10412 Merge pull request #2687 from akallabeth/known_hosts_v2
Store SSL fingerprints with host and port
2015-06-12 12:52:53 +00:00
Bernhard Miklautz e8d41c8516 Merge pull request #2682 from nfedera/fix-hresult-winpr-path
winpr/path: more PathCch* fixes
2015-06-11 12:47:10 +02:00
Vic Lee ad4cdf8810 winpr: add high-precision GetTickCountPrecise for Windows. 2015-06-11 15:11:19 +08:00
Armin Novak d6e1a0a25f Added StrSep function. 2015-06-09 15:32:50 +02:00
Armin Novak db7753bc8b Added RemoveDirectoryA, clean up test directories. 2015-06-09 13:16:28 +02:00
Armin Novak 7403cdc60c Added PathMakePath function. 2015-06-09 13:16:28 +02:00
Bernhard Miklautz 07407927c2 Merge pull request #2670 from akallabeth/windows_config_paths
Adjusted config paths
2015-06-09 12:35:45 +02:00
Norbert Federa cdabfcf9e1 winpr/path: Denounce PathAllocCombine and more
Note: This commit does NOT really fix PathAllocCombine!

- print a warning message that the function is buggy and added a code
  comment describing the issues
- fix misuse of the S_FALSE HRESULT in error conditions
- prevent some segfaults
- check result of HeapAlloc

Fortunately PathAllocCombine is unused in FreeRDP
2015-06-08 14:33:19 +02:00
Norbert Federa 6823cb4a86 winpr/path: PathCchConvertStyle used S_FALSE
Use E_FAIL instead of S_FALSE which was used to indicate errors
although it is a HRESULT success code.
2015-06-08 14:33:19 +02:00
Norbert Federa b93a25a9af winpr/path: umimplemented tests print a warning 2015-06-08 14:33:19 +02:00
Norbert Federa d383f95335 winpr/path: unimpl. functions should not succeed
Unimplemented PathCch* functions now return E_NOTIMPL instead of the
HRESULT S_OK and print an error message.
2015-06-08 14:33:19 +02:00
Norbert Federa c4cd60110a winpr: fix PathCchFindExtension
Fix multiple inplementation errors including the incorrect usage of S_FALSE.
Make this function behave like the Windows 8 implementation and
the according MSDN specification.

- return S_OK if the extension was NOT found
- if no extension was found, ppszExt must point to the string's terminating null
- return E_INVALIDARG if pszPath is not null-terminated within the cchPath range
- return E_INVALIDARG if pszPath is NULL
- return E_INVALIDARG if ppszExt is NULL
- return E_INVALIDARG if cchPath is Zero
- return E_NOTIMPL instead of S_OK in PathPathCchFindExtensionW()

Also extended/fixed the TestPathCchFindExtension ctest
2015-06-08 14:33:19 +02:00
Norbert Federa 178afd8dd5 winpr: fix PathCchAppend
Fix incorrect usage of S_FALSE which was used to indicate errors
although it is a HRESULT success code.
Make this function behave like the Windows 8 implementation and
the according MSDN specification.

- return E_INVALIDARG instead of S_FALSE if pszPath is NULL
- return E_INVALIDARG instead of S_FALSE if pszMore is NULL
- return E_INVALIDARG if cchPath is zero
- return E_INVALIDARG if cchPath is greater than PATHCCH_MAX_CCH
- return HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE) if the combined
  path size exceeds cchPath (this is the same HRESULT which the Windows
  implementation returns in this case and which is referred to as
  PATHCCH_E_FILENAME_TOO_LONG on msdn)

Also extended/fixed the TestPathCchAppend ctest
2015-06-03 16:06:02 +02:00
Norbert Federa 92b0076c53 winpr: fix PathCchStripPrefix
And again S_FALSE was incorrectly used to indicate an error.
Fix this and be more compatible to the Windows 8 implementation of
this function:

- return E_INVALIDARG instead of S_FALSE if pszPath is NULL
- return E_INVALIDARG instead of S_FALSE if cchPath < 4
- return E_INVALIDARG if cchPath > PATHCCH_MAX_CCH
- allow stripping of "\\?\c:" and don't require "\\?\c:\"
- verify that the character at the drive letter position is
  actually an alphabetic character
- since the passed pszPath must not necessarily be null terminated
  and we always have enough space after the memmove we can always
  ensure the null termination of the stripped result

Also extended/fixed the TestPathCchStripPrefixctest
2015-06-03 16:06:02 +02:00
Norbert Federa 17ceafbb0c winpr: fix PathCchAddExtension
The HRESULT S_FALSE does not indicate an error:
- return E_INVALIDARG instead of S_FALSE
- return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) instead of S_FALSE

Also extended/fixed the corresponding ctest
2015-06-03 16:06:02 +02:00
Norbert Federa 03b0472c29 winpr: fix PathCchAddBackslashEx
The HRESULT S_FALSE does not indicate an error:
- return E_INVALIDARG instead of S_FALSE
- return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) instead of S_FALSE

Also extended/fixed the corresponding ctest
2015-06-03 16:06:02 +02:00
Norbert Federa 21e6012226 winpr: fix PathCchAddBackslash
The HRESULT S_FALSE does not indicate an error:
- return E_INVALIDARG instead of S_FALSE
- return HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) instead of S_FALSE

Also extended/fixed the corresponding ctest
2015-06-03 16:06:01 +02:00
Bernhard Miklautz 6b92fe3805 Merge pull request #2673 from nfedera/fix-hresult
winpr: fixed HRESULT & SCODE types, added a ctest
2015-06-03 10:05:09 +02:00
Norbert Federa 77769f10b6 winpr: fixed HRESULT & SCODE types, added a ctest
- HRESULT was unsigned which means that until now all usages of the
  SUCCEDED(hr) and FAILED(hr) macros never detected any errors
- Also fixed the (unused) SCODE typedef
- Added new ctest TestTypes
2015-06-02 19:52:52 +02:00
Armin Novak c6c43d5f06 Writing failure to stderr. 2015-06-02 17:54:27 +02:00
Armin Novak 1c3b38f58b Fixed image test. 2015-06-02 17:53:16 +02:00
Armin Novak 2a3cd74c02 Fixed image test. 2015-06-02 15:17:54 +02:00
Marc-André Moreau 36b7d9c4e5 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-06-02 09:17:30 -04:00
Armin Novak e6283db1b9 Added missing NULL check. 2015-06-02 10:10:47 +02:00
Armin Novak d3a88014da Fixed directory creation checks. 2015-06-02 10:01:10 +02:00
Armin Novak 70df8d8ba9 Fixed static function arguments. 2015-06-02 09:50:59 +02:00
Armin Novak d1223d3799 Fixed windows known path locations. 2015-06-02 09:50:48 +02:00
David FORT 12f873f1f9 Fixed MessageQueue and callers 2015-05-29 14:24:14 +02:00
Hardening 4586450e27 Merge pull request #2661 from MartinHaimberger/mh-stream-fix
stream: check stream_new in winpr and libfreerdp
2015-05-29 14:12:59 +02:00
Martin Haimberger 951a2d2210 stream: check stream_new in winpr and libfreerdp
also fixed a few things
2015-05-29 04:46:50 -07:00
Hardening 1b366816a2 Merge pull request #2608 from oshogbo/master
Add check to protect memcpy(3) from using NULL pointer.
2015-05-29 10:49:42 +02:00
Hardening f7f58f64c8 Merge pull request #2646 from eledoux/thread_list
fixed a synchronization issue on thread_list
2015-05-28 10:51:53 +02:00
Emmanuel Ledoux de1a21eadd winpr-thread: added HP's copyright 2015-05-27 18:24:56 +02:00
Emmanuel Ledoux 206714a270 winpr-thread: thread_list's synchronization based on a pthread_cond_t 2015-05-27 18:15:17 +02:00
Bernhard Miklautz 03ec9bed93 winpr/test: incorporate comments from pull request
* Fix TestIntrinsics - always returned 0
* rename TestWinpr to TestWinPR for consistency
* update gitignores accordingly
2015-05-27 10:32:08 +02:00
Emmanuel Ledoux f74cd12df2 winpr-thread: a better error message and comments about thread_list 2015-05-26 18:15:57 +02:00
Emmanuel Ledoux 56f34582c7 winpr-thread: added an assertion to enforce that thread_list is correctly set 2015-05-26 17:55:27 +02:00
Emmanuel Ledoux 93127e0a7a winpr-thread: thread_list's synchronization based on an Event 2015-05-26 17:40:34 +02:00
Bernhard Miklautz f9c7e03044 winpr: add intrin.h
Exposing lzcnt in crt.h might causes compiler errors (redefinition) with
recent versions of gcc (>=4.9) when winpr is included in other projects.
As lzcnt isn't part of crt according to MSDN and also shouldn't be
exported by default it was moved to intrin.h.

The related test was also moved to the top level directory of winpr.
2015-05-26 16:41:29 +02:00
Mariusz Zaborski 80958751e4 Add check to protect memcpy(3) from using NULL pointer.
The ntlm_construct_challenge_target_info function can potentially pass NULL as
argument to the ntlm_av_pair_add function (for example DnsDomainName.Buffer).
This NULL finally lands in the CopyMemory (which is macro to the memcpy(3)
function) which can't handle NULL.
2015-05-25 08:32:48 +02:00
Marc-André Moreau 4886c4c9b1 libwinpr-winsock: add WSAIoctl() interface listing for OS X 2015-05-22 19:01:37 -04:00
Marc-André Moreau 36cb1e6dc9 Merge pull request #2639 from awakecoding/master
WLog, server-side rdpdr, remote assistance, byteswap, etc
2015-05-22 14:30:11 -04:00
Emmanuel Ledoux f94ab0033b winpr-thread: better error message upon a failure of TestThreadExitThread 2015-05-22 19:17:30 +02:00
Emmanuel Ledoux 6f5de27081 winpr-thread:
- added the unit test: TestThreadExitThread
  - fix: ensure thread_list to be up to date before to call ExitThread()
  - possibly resolved: Problems with serial redirection #2389
2015-05-22 18:28:10 +02:00
Marc-André Moreau 7a06640c16 libwinpr-shell: use getpwnam_r 2015-05-22 10:03:21 -04:00
Jakub Adam 73888a57c2 Ensure threads have finished using a barrier before releasing it
MSDN documentation says it is ensured that all threads in the barrier
have finished using it before allowing the barrier to be released in
DeleteSynchronizationBarrier(). The winpr re-implementation wasn't
keeping to that requirement, which was causing occasional crashes
when shadow client tried to access already freed barrier structure.

The crash was occuring in winpr_Handle_cleanup() after finished
waiting on a barrier's event.
2015-05-22 13:36:15 +02:00
Petr Sumbera fe5ce30f92 winsock.c Solaris build fixes 2015-05-21 13:24:03 -07:00
Marc-André Moreau 5526348079 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2015-05-21 13:29:59 -04:00
Marc-André Moreau c64be497b8 libwinpr-utils: update backtrace utils 2015-05-21 13:25:35 -04:00
Marc-André Moreau b9c1cddc2e Merge pull request #2583 from bceverly/OpenBSD-cleanup
Two minor source code changes to remove warnings
2015-05-21 10:17:54 -04:00
Norbert Federa cd0a8e0506 Merge pull request #2630 from hardening/new_2616
Add checks for some XXX_New and XXX_Add functions
2015-05-21 16:04:26 +02:00
David FORT 29d372480a Take in account nfedera's review 2015-05-20 19:19:50 +02:00
Bryan Everly a3a3efe31e Fixed mistake with bitwise operator in previous two commits 2015-05-20 12:17:05 -04:00
Marc-André Moreau 7e1dbd505b Merge branch 'awakecoding' of https://github.com/vworkspace/FreeRDP
Conflicts:
	channels/rdpdr/server/rdpdr_main.c
2015-05-20 11:40:48 -04:00
Bryan Everly 80af54b169 Moved thread code to OpenBSD only 2015-05-20 10:52:24 -04:00
Marc-André Moreau 29d14773c8 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	client/Windows/wf_client.c
	libfreerdp/common/assistance.c
2015-05-20 10:12:24 -04:00