- Improve use of local variables in IopCreateDeviceInstancePath and IopActionInterrogateDeviceStack
- Improve debug prints in IopCreateDeviceInstancePath. By Vadim Galyant
- Fix formatting in IopGetParentIdPrefix
svn path=/trunk/; revision=74048
- GreGetDIBitsInternal:
- Prevent an access violation in DIB_FreeConvertedBitmapInfo by initializing the bit count before calling DIB_ConvertBitmapInfo and setting clrUsed.
- Validate input parameters and return correct values - only return number of scan lines if bits are not null and bpp is not zero. Otherwise return 1 on success.
- We now pass more gdi32:GetDIBits and gdi32:bitmap tests.
CORE-9270
svn path=/trunk/; revision=74046
- Turn the "!memcmp(ptr1, ptr2, sizeof(GUID))" into IsEqualGUID(ptr1, ptr2) macro calls (aka. make code readable);
this also allowed me to discover a logical bug in the GUID comparison in WsNcUpdateNamespaceList.
- Fix few comments, and rename some goto labels to make their meaning clearer (they are not only taken for error code paths,
but also on regular path, for cleanup before returning from the function).
CORE-12880
svn path=/trunk/; revision=74045
- Perform success checks in WsAsyncCheckAndInitThread, in particular, check whether Context is correctly allocated,
and check whether the WsAsyncThread was correctly started up. In case of failure, perform the necessary cleanup,
including calling WSACleanup().
- Check also the returned error code of WSAStartup. Fixes CID 1101934.
- Fix logic mess-up in WsNqLookupServiceNext when updating NsQuery->ActiveProvider;
- Fix copy-pasta errors (using 'lpafpProtocols' instead of 'lpcsaBuffer') in CopyQuerySetIndirectA and CopyQuerySetIndirectW,
that triggered CID 513446 + CID 513447 (CopyQuerySetIndirectA), and CID 513444 + CID 513445 (CopyQuerySetIndirectW).
- Check for 'lpdwBufferLength' pointer validity in WSALookupServiceNextW;
- Check for 'lpdwBufferLength' and 'lpqsResults' pointers validity in WSALookupServiceNextA, and dereference lpdwBufferLength only afterwards.
- Check for return value of RegCreateKeyEx in WsOpenRegistryRoot(), fixes CID 715923.
svn path=/trunk/; revision=74044
- Check for NULL pointers after HeapAlloc calls, in the constructor functions, before initializing members of created objects;
- Add a bunch of missing HeapFree in the corresponding destructor functions.
In particular, fix the root cause of CID 1401152 in WsTpDelete: missing HeapFree call.
CORE-12880
svn path=/trunk/; revision=74043
- Use IsListEmpty where needed;
- Initialize NextEntry using Catalog->ProtocolList after the lock on the catalog has been acquired;
- Rearrange WsNqLookupServiceNext to reduce the code indent level; also, convert the construct "if (var) { do { ... } while (var); }" into a mere "while (var) { ... }";
- WsNqPreviousProvider: the "next" provider is the previous one...;
- WsNqAddProvider: Use a more standard name for the boolean return value;
- Fix the annotation of MapUnicodeQuerySetToAnsi;
- Factor out setting the SetLastError WSALookupServiceBeginA.
svn path=/trunk/; revision=74041
[USETUP] Add Font Substitutions for Franklin Gothic and MS Trebuchet CORE-12878 CORE-12877
Now Luna uses better fonts but the font styles are still not used.
svn path=/trunk/; revision=74040
- Always set the default value in SetDefaultHandler, otherwise it's impossible to create a default association if the key for some reason already exists. This is consistent with what Windows does.
svn path=/trunk/; revision=74039
Fix size checking for IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, and only copy what's possible to fit in the buffer.
Also, make the code a bit more readable.
CORE-12858
svn path=/trunk/; revision=74027
Fix unbootable system after recreating the boot partition
Patch by Wim Hueskens.
CORE-11232 #resolve #comment Thanks a lot!
svn path=/trunk/; revision=74019
Implementation of the install button.
Patch by Baruch Rutman.
Fixes by Eric Kohl.
CORE-7355 #resolve #comment Thanks a lot!
svn path=/trunk/; revision=74006
- Capture the ObjectFlags to be set in a local variable,
- Then copy its contents in the mem area pointed by pvInformation *under the SEH block*! This allows:
* protection if pvInformation is an invalid pointer;
* avoid to run the "RtlCopyMemory(pvInformation, pvData, nDataSize);" afterwards with pvData == NULL.
svn path=/trunk/; revision=74005
07e3181 wininet: Fix some spec file entries.
725b55d wininet: Get rid of no longer needed INTERNET_INVALID_PORT_NUMBER in get_server.
0d22e43 wininet: Handle INTERNET_INVALID_PORT_NUMBER in HttpOpenRequest.
8c39694 wininet: Changed usage of UrlEscapeW to fit winapi behavior.
b3d12a1 wininet: Canonicalize URL in HttpOpenRequest.
47ff954 wininet: Use return value of sprintf() instead of calling strlen() and simplify code.
svn path=/trunk/; revision=74000