[PATCH] rpcrt4: compare networkoptions correctly (Coverity) (adjusted)

Rob Shearman robertshearman at gmail.com
Sun Nov 8 04:21:57 CST 2009


2009/11/8 Marcus Meissner <meissner at suse.de>:
> @@ -84,6 +84,17 @@ static RPC_STATUS RpcAssoc_Alloc(LPCSTR Protseq, LPCSTR NetworkAddr,
>     return RPC_S_OK;
>  }
>
> +static BOOL compare_networkoptions(LPCWSTR opts1, LPCWSTR opts2)
> +{
> +    if ((opts1 == NULL) && (opts2 == NULL))
> +        return TRUE;
> +    if ((opts1 == NULL) && (opts2 != NULL))
> +        return FALSE;
> +    if ((opts1 != NULL) && (opts2 == NULL))
> +        return FALSE;
> +    return !strcmpW(opts1, opts2);
> +}
> +
>  RPC_STATUS RPCRT4_GetAssociation(LPCSTR Protseq, LPCSTR NetworkAddr,
>                                  LPCSTR Endpoint, LPCWSTR NetworkOptions,
>                                  RpcAssoc **assoc_out)
> @@ -97,8 +108,8 @@ RPC_STATUS RPCRT4_GetAssociation(LPCSTR Protseq, LPCSTR NetworkAddr,
>         if (!strcmp(Protseq, assoc->Protseq) &&
>             !strcmp(NetworkAddr, assoc->NetworkAddr) &&
>             !strcmp(Endpoint, assoc->Endpoint) &&
> -            ((!assoc->NetworkOptions && !NetworkOptions) || !strcmpW(NetworkOptions, assoc->NetworkOptions)))
> -        {
> +            compare_networkoptions(NetworkOptions, assoc->NetworkOptions)
> +        ) {

Looks good functionally, but please don't change the style.

>             assoc->refs++;
>             *assoc_out = assoc;
>             LeaveCriticalSection(&assoc_list_cs);

Thanks,
-- 
Rob Shearman



More information about the wine-devel mailing list