[PATCH] Added support for ConvertLengthToIpv4Mask in iphlpapi
Dagfinn Reiakvam
dagfinn at reiakvam.no
Fri Mar 16 08:01:18 CDT 2018
Hi Zhiyi,
I must have overlooked setting Mask on failure. I can fix that.
I was considering setting a lower bound as well, but I was uncertain
what that bound would be. The MaskLength is unsigned, negative numbers
at least are not possible.
And I should defiantly write some tests, since I already see that I
screwed up on the INVALID_PARAMETER check (used '<=' not '>=').
I will fix my mistakes and come back with a better patch :)
Uberdaff
On 16. mars 2018 09:21, Zhiyi Zhang wrote:
>
> Hi Uberdaff,
>
>> On success,*ConvertLengthToIpv4Mask*returns*NO_ERROR*. Any nonzero
>> return value indicates failure and the/Mask/parameter is set
>> to*INADDR_NONE*defined in the/Ws2def.h/header file.
> MSDN says Mask parameter also gets set on failure.
>
>> if(MaskLength <= 32)
>> return ERROR_INVALID_PARAMETER;
> Maybe we should check MaskLength lower bound as well?
>
> I haven't really look into it yet because even MSDN can be wrong. But
> I suggest you add a test to verify.
> If you're sending the patch on others behalf and you're not familiar
> with how to write a test, contact original author.
>
> Zhiyi Zhang
>
> On 3/16/2018 5:02 AM, Uberdaff wrote:
>> From: Dagfinn Reiakvam<dagfinn at reiakvam.no>
>>
>> ---
>> dlls/iphlpapi/iphlpapi.spec | 2 +-
>> dlls/iphlpapi/iphlpapi_main.c | 11 +++++++++++
>> 2 files changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/dlls/iphlpapi/iphlpapi.spec b/dlls/iphlpapi/iphlpapi.spec
>> index b6c9aef..bbd1ed8 100644
>> --- a/dlls/iphlpapi/iphlpapi.spec
>> +++ b/dlls/iphlpapi/iphlpapi.spec
>> @@ -23,7 +23,7 @@
>> @ stdcall ConvertInterfaceNameToLuidW( wstr ptr )
>> #@ stub ConvertInterfacePhysicalAddressToLuid
>> #@ stub ConvertIpv4MaskToLength
>> -#@ stub ConvertLengthToIpv4Mask
>> +@ stdcall ConvertLengthToIpv4Mask( long ptr )
>> #@ stub ConvertRemoteInterfaceAliasToLuid
>> #@ stub ConvertRemoteInterfaceGuidToLuid
>> #@ stub ConvertRemoteInterfaceIndexToLuid
>> diff --git a/dlls/iphlpapi/iphlpapi_main.c b/dlls/iphlpapi/iphlpapi_main.c
>> index 97284ed..891f8f0 100644
>> --- a/dlls/iphlpapi/iphlpapi_main.c
>> +++ b/dlls/iphlpapi/iphlpapi_main.c
>> @@ -3223,6 +3223,17 @@ DWORD WINAPI ConvertInterfaceNameToLuidW(const WCHAR *name, NET_LUID *luid)
>> }
>>
>> /******************************************************************
>> + * ConvertLengthToIpv4Mask (IPHLPAPI.@)
>> + */
>> +DWORD WINAPI ConvertLengthToIpv4Mask(ULONG MaskLength, PULONG Mask)
>> +{
>> + if(MaskLength <= 32)
>> + return ERROR_INVALID_PARAMETER;
>> + *Mask = 0xffffffff << ( 32 - MaskLength );
>> + return NO_ERROR;
>> +}
>> +
>> +/******************************************************************
>> * if_nametoindex (IPHLPAPI.@)
>> */
>> IF_INDEX WINAPI IPHLP_if_nametoindex(const char *name)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20180316/deff4a1c/attachment-0001.html>
More information about the wine-devel
mailing list