[PATCH] Added support for ConvertLengthToIpv4Mask in iphlpapi
Zhiyi Zhang
yi.gd.cn at gmail.com
Fri Mar 16 03:21:15 CDT 2018
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/0fbde580/attachment-0001.html>
More information about the wine-devel
mailing list