"Juan Lang" <juan.lang(a)gmail.com> writes:
> + ret = data->pPDSip->pSip->pfGet(data->pPDSip->psSipSubjectInfo,
> + &data->dwEncoding, 0, &size, buf);
> + if (ret)
> + {
> + data->hMsg = CryptMsgOpenToDecode(data->dwEncoding, 0, 0, data->hProv,
> + NULL, NULL);
> + if (data->hMsg)
> + ret = CryptMsgUpdate(data->hMsg, buf, size, TRUE);
> + }
> +
> + if (!ret || !data->hMsg)
> + err = GetLastError();
> + data->psPfns->pfnFree(buf);
> + return err;
That style of coding is dangerous, it assumes that all the error paths
of the called functions will set last error properly. It's better to
return a success/failure boolean and fetch the last error only when
the actual error is needed, not as an error indication.
--
Alexandre Julliard
julliard(a)winehq.org