dpnet: Implement IDirectPlay8Address GetComponentByIndex (try 7)

Stefan Dösinger stefandoesinger at gmail.com
Mon Feb 23 02:26:37 CST 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

Thanks again for your work!

Am 2015-02-23 um 08:41 schrieb Alistair Leslie-Hughes:
> +{
> +    if (!This->comp_count)
> +        This->components = heap_alloc( sizeof(struct component *) * This->comp_count+1 );
> +    else
> +        This->components = heap_realloc(This->components, sizeof(struct component *) * This->comp_count+1 );
> +
> +    This->components[This->comp_count] = item;
> +    This->comp_count++;
> +}
This still has no error checks.

> @@ -369,9 +397,48 @@ static HRESULT WINAPI IDirectPlay8AddressImpl_GetComponentByIndex(IDirectPlay8Ad
>          const DWORD dwComponentID, WCHAR *pwszName, DWORD *pdwNameLen, void *pvBuffer,
>          DWORD *pdwBufferSize, DWORD *pdwDataType)
>  {
> ...
> +    if (!pdwNameLen || !pdwBufferSize)
> +        return E_POINTER;
In GetComponentByName you have additional checks for !pvBuffer.

What is pwszName name used for? Are you supposed to write the name of
the retrieved component (with proper length checks)?

>          case DPNA_DATATYPE_STRING:
> +            if(dwDataSize != ((strlenW((WCHAR*)lpvData)+1) * sizeof(WCHAR)))
> +                return DPNERR_INVALIDPARAM;
I expect this also applies to DPNA_DATATYPE_STRING_ANSI. Please move it
to a separate patch (preferably before the GetComponentByIndex
changes), together with the tests for the length check.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBAgAGBQJU6uQ9AAoJEN0/YqbEcdMwW4wP/0wYOQ+Sw3FZw/TAQ682yMmb
FJBuRuymWoQthCAnc7kS7wsDwz+erbNPqjFE/MUrbuTHeIRtRJegtMTcLsq/ycSx
pzV9uaZoG9MkGMPky/TTgWAyOvWu6w1fVBgUunnQlX8okMk+HMve+qiayeuHSgj9
CyznrrG/gLsVamZfJidnpMlwJ3a2Az5GOYG3yoCKGEiBzthS8niRvf4PLrNa/T5s
/YUcfoorChwNnTEu1F+BEJt/CJTFy+qnrGOplDo5cCG6XJ9cK10JEsXybShSA1LT
byol2yxMHNR1MdKw/ZsDJiS8RDnCPKTZiaY45FB7BZkyle5J/jJ9wfkBX/L+ID3M
mMM1qo5nKjjbiICMkYIRHO4LW9lyCT4FKBLkXwGWTo7Npxpb7iB5Jo2X5sl8o3K4
d1TL7kjdmIj3nz+TbPyVrZZHV4GkBJ3Wgmv1b+uNdPQ6SSotzy6I6FzG1YkivQvF
mo8cFFJTs0OO/fUBN5wggkiU4YAheHn258wz7EcepyPMH431GsFp9QVcZbNEQVNi
hEasoqLeql/GzI0ZRmOLTLdueVsajZGhoHLGgN10SSql60dfsPZhfpQMrhsX8HQf
Ub5SXqAWAc3vZmvv1I1POyUATNxTV8WWZfSmd7QBv+4qsJX2hsXE3Y4/I8cmIv0I
OonvF4surL4lU+vFIkJC
=eOzT
-----END PGP SIGNATURE-----



More information about the wine-devel mailing list