Commit Graph

31 Commits

Author SHA1 Message Date
Ilya Shipitsin
14c15c680d resolve several possible null pointer dereference
issue detected by cppcheck

[channels/drive/client/drive_main.c:454] -> [channels/drive/client/drive_main.c:443]: (warning) Either the condition '!irp' is redundant or there is possible null pointer dereference: irp.
[client/X11/xf_window.c:582] -> [client/X11/xf_window.c:580]: (warning) Either the condition '!xfc' is redundant or there is possible null pointer dereference: xfc.
[winpr/libwinpr/path/test/TestPathShell.c:40] -> [winpr/libwinpr/path/test/TestPathShell.c:43]: (warning) Either the condition '!path' is redundant or there is possible null pointer dereference: path.
[winpr/libwinpr/path/test/TestPathShell.c:49] -> [winpr/libwinpr/path/test/TestPathShell.c:52]: (warning) Either the condition '!path' is redundant or there is possible null pointer dereference: path.
2018-03-24 17:46:39 +05:00
Armin Novak
7305828122 Fix #4239: Various memory leaks
* Fixed all tests, now can be run with -DWITH_ADDRESS_SANITIZER=ON compiled.
* Enabled address sanitizer for nightly builds.
2017-12-12 11:40:48 +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
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
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
Vic Lee
2e11eac79a Merge pull request #2675 from akallabeth/path_make_path
Added PathMakePath function.
2015-06-18 02:43:47 +00: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
Norbert Federa
b93a25a9af winpr/path: umimplemented tests print a warning 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
6a49bcfe40 winpr: always build "monolitic"
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.

The only exception is winpr-makecert-tool which is still build as extra
library.

This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
Marc-André Moreau
a202fe4057 freerdp: fix several type related warnings 2014-05-08 18:02:02 -04:00
Marc-André Moreau
b4f70ed8fd libwinpr-path: rename known path constants 2013-03-22 16:03:42 -04:00
Marc-André Moreau
068f0de4d4 libfreerdp-utils: purge old file utils 2013-03-22 15:52:43 -04:00
Marc-André Moreau
edf6e7258d libwinpr-path: add path detection functions 2013-03-22 00:42:09 -04:00
Bernhard Miklautz
e8eb0d0b44 Fixed formating build warnings (-Wformat) 2013-03-15 20:03:48 +01:00
Marc-André Moreau
925eb59bf1 libfreerdp-common: refactoring of addin loader 2012-11-17 22:03:04 -05:00
Marc-André Moreau
d5b635c9e8 libwinpr-library: improve library tests 2012-10-18 16:58:27 -04:00
Marc-André Moreau
dd23dd1aee ctest: change default output test path 2012-10-18 15:37:00 -04:00
Marc-André Moreau
229438dbf3 cmake: fix monolithic test build 2012-10-13 17:38:02 -04:00
Marc-André Moreau
9aa1217c4e libwinpr-pipe: implement anonymous pipes 2012-10-07 20:25:50 -04:00
Marc-André Moreau
fbd2f360e9 winpr: fix compilation on Linux 2012-10-05 14:45:54 -04:00
Marc-André Moreau
1622a2f271 libwinpr-path: make tests pass on Windows 2012-10-05 11:40:33 -04:00
Marc-André Moreau
bf26079d3f libwinpr: added tests and fix InterlockedCompareExchange64 on Windows XP 2012-10-04 18:57:32 -04:00
Marc-André Moreau
423585a6a1 libwinpr-path: fix build on Linux 2012-10-01 18:34:46 -04:00
Marc-André Moreau
9155bf3eab libwinpr-path: start writing tests 2012-10-01 16:49:34 -04:00