Commit Graph

319 Commits

Author SHA1 Message Date
Simon Rozman
2147ed71ef Common: Require explicit handle validation
Using operator bool() hid ambiguity when handle was polymorfic with
bool. Using operator!() reqired !! to test for validity which results in
awkward code.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-06-12 14:04:17 +02:00
Simon Rozman
b04df162ae Common: Require explicit handle validation
Using operator bool() hid ambiguity when handle was polymorfic with
bool. Using operator!() reqired !! to test for validity which results in
awkward code.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-06-12 13:36:16 +02:00
Simon Rozman
d9a719ddb8 Common: Require explicit handle validation
Using operator bool() hid ambiguity when handle was polymorfic with
bool. Using operator!() reqired !! to test for validity which results in
awkward code.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-06-09 22:39:06 +02:00
Simon Rozman
ca791f1663 Use native line endings 2025-05-26 14:49:17 +02:00
Simon Rozman
666d362075 WinHTTP: Add missing #include
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-04-22 16:41:50 +02:00
Simon Rozman
2e03659948 Clear warning suppression
Code analysis got quite good and we'd better keep warnings on our radar.

Either:
1. Research and resolve the reason for the warning.
2. Remove silencing and let code analysis complain.
3. Comment why some warning silencing is there.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-04-03 14:09:53 +02:00
Simon Rozman
f0699d7f47 Silence C26451
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-28 10:13:00 +01:00
Simon Rozman
0f412d5c38 COM: Fix filling arrays with more than 4G cells
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-03-28 10:08:36 +01:00
Simon Rozman
d1bfd1abed WinHTTP: Add http_error
WinHTTP errors don't get resolved by FormatMessage by default. We need
to format them using WINHTTP.DLL resources.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-02-20 14:12:14 +01:00
Simon Rozman
3053b98ab8 WinHTTP: Add http_proxy_info
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-02-14 15:45:57 +01:00
Simon Rozman
e287d62fbc Win: Silence benign warning
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-02-03 20:47:52 +01:00
Simon Rozman
4655738add Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-30 13:49:03 +01:00
Simon Rozman
892d950f2b Win: Fix LoadStringA
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-30 13:44:40 +01:00
Simon Rozman
9ce2e578bb Win: Test ExpandEnvironmentStringsA
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-30 13:44:18 +01:00
Simon Rozman
d3f8439118 Win: Trim trailing zeros in LoadStringW
When resources are compiled with /n (default), all strings are zero
terminated and LoadStringW returns number of characters including this
terminator.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-30 13:43:26 +01:00
Simon Rozman
bbe3da0303 Sec: Fix GetUserNameExA
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-30 13:40:27 +01:00
Simon Rozman
034a0ce74f Win: Test GetModuleFileNameA
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-30 13:19:45 +01:00
Simon Rozman
b25f6de9e5 BCrypt: Cleanup
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-28 10:07:37 +01:00
Simon Rozman
acea29ac6d BCrypt: Fix bcrypt_keypair
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-28 10:07:24 +01:00
Simon Rozman
289aab2354 BCrypt: Add
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-24 15:07:14 +01:00
Simon Rozman
ba13a57897 Remove excessive WINAPI
No need to have non-default calling convention for our API.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-24 15:06:54 +01:00
Simon Rozman
6874413b65 Win: Add ntstatus_error
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-24 15:04:35 +01:00
Simon Rozman
a0aa5f177d Update SAL of no longer optional exception text
This was overlooked in b7de081788 and
2d9e445e18.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-21 09:09:12 +01:00
Simon Rozman
2d9e445e18 Require all exceptions to provide some text
Otherwise what() returns nullptr and it makes catch handlers somewhat
inconvenient if they need to test for this too.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-20 16:24:00 +01:00
Simon Rozman
b7de081788 COM: Use FormatMessage when no msg provided for com_runtime_error
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-20 16:22:02 +01:00
Simon Rozman
34d5dc23df COM: Fix documentation external references
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-16 13:24:44 +01:00
Simon Rozman
01adb60ded COM: Allow safearray_accessor with NULL SAFEARRAY
This allows accessor to be used in the parent scope before checking
SAFEARRAY for NULL.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-16 13:23:43 +01:00
Simon Rozman
e1d4e03831 COM: Allow SysAllocString(NULL)
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-16 13:22:57 +01:00
Simon Rozman
e432882d3b Declare handle::detach()
It's trivial and used at the point from which no C++ exceptions are
expected, as the handle is no longer a subject to RAAI.

Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-15 15:03:14 +01:00
Simon Rozman
f33010e6b6 COM: Add helper for SAFEARRAY creation
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-15 15:03:14 +01:00
Simon Rozman
b0cf45a0f1 Bump Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-08 12:36:14 +01:00
Simon Rozman
460ace5928 Trim trailing whitespace
Signed-off-by: Simon Rozman <simon@rozman.si>
2025-01-07 15:04:42 +01:00
Simon Rozman
f85047dab9 COM: Test rather than assert
We generally don't care when our functions are called with invalid
arguments (validation should be performed on arguments input, not every
use). However, we do use asserts to validate arguments in Debug builds.
Unfortunately, this makes Code Analysis unhappy in the Release builds.
Let's make an exception on this one, since the check is not expensive
compared to the rest of the function.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-11-19 10:44:14 +01:00
Simon Rozman
e553485d33 Add missing UTF-8 BOM
We want to ensure non-UTF8 configured Windows machines interpret our
source code correctly.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-11-11 12:24:22 +01:00
Simon Rozman
d807e150ba Stop using get_ptr after moved to stdex
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-10-01 16:38:14 +02:00
Simon Rozman
5b023215f5 Move get_ptr to stdex
This was migrated to stdex being platform independent.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-09-30 09:41:09 +02:00
Simon Rozman
8cca09a567 Mark GetUserNameExW as tested
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-09-23 14:55:29 +02:00
Simon Rozman
6dead076a2 Add missing SAL
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-04-22 13:54:44 +02:00
Simon Rozman
0559794633 Add last_error_saver
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-15 18:10:02 +01:00
Simon Rozman
9da457ab2b WinHTTP: Add WinHttpQueryHeaders
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-03-11 21:41:51 +01:00
Simon Rozman
5be20dde23 COM: Add helpers for VBARRAY creation
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-16 08:46:01 +01:00
Simon Rozman
6ca4c28f9c Fix typo in documentation
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-16 08:25:09 +01:00
Simon Rozman
f5de1accad Remove __vsnprintf to declutter global namespace
It is usual for WinStd to have A and W versions of the same function.
Why would vsnprintf be different?

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 21:49:09 +01:00
Simon Rozman
cbb221fce4 Use correct exception in WlanReasonCodeToString
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:07:31 +01:00
Simon Rozman
9d4cac5131 Add mutex_locker
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 20:07:30 +01:00
Simon Rozman
abd7189ec4 Fix single-byte version of vsnprintf()
Not defining our own vsnprintf() for char* strings made code switch to
C99 stdlib vsnprintf(), which is behaving differently than vsprintf()
expects.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-09 19:45:24 +01:00
Simon Rozman
bce73bc2ea Bump Copyright year
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-06 10:54:53 +01:00
Simon Rozman
19e2dbbe72 Win: Revise string zero termination
Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-06 10:48:54 +01:00
Simon Rozman
9f5a68e789 Write directly into std::string buffer
This removes extra memory allocation.

Signed-off-by: Simon Rozman <simon@rozman.si>
2024-01-05 23:35:19 +01:00
Simon Rozman
49542a5f64 Refactor
Signed-off-by: Simon Rozman <simon@rozman.si>
2023-12-21 09:19:52 +01:00