[PATCH v2 2/6] ntoskrnl.exe/tests: Add tests with and without report IDs.
Rémi Bernon
rbernon at codeweavers.com
Tue Jun 15 12:05:37 CDT 2021
On 6/15/21 6:39 PM, Zebediah Figura (she/her) wrote:
> On 6/15/21 11:29 AM, Rémi Bernon wrote:
>> On 6/14/21 9:26 AM, Marvin wrote:
>>> === w864 (64 bit report) ===
>>>
>>> Report validation errors:
>>> ntoskrnl.exe:ntoskrnl crashed (c0000374)
>>>
>>
>> FWIW this is crashing there:
>>
>> ret = CertCloseStore(ctx->root_store, CERT_CLOSE_STORE_CHECK_FLAG);
>>
>> But I have absolutely no idea why. Somehow the certificate store got
>> corrupted? It's not related to the patches, but it doesn't crash all the
>> time.
>>
>
> It seems it's been happening for a while now. Probably something's wrong
> with the cert code in the test. Unfortunately I haven't been able to
> find any errors from manual reëxamination, and I'm not sure how else to
> proceed.
>
> Does anyone know of a memory checker that can be used on Windows? It may
> be tricky to use it while avoiding looking at crypt32 internals, but
> it's at least worth a try...
>
I think it may be coming from CertFreeCertificateContext, which either
is not necessary after CertDeleteCertificateFromStore, or w8 messed up
its refcounts.
MSDN states:
> The CertDeleteCertificateFromStore function always frees pCertContext
> by calling the CertFreeCertificateContext function, even if an error
> is encountered. Freeing the context reduces the context's reference
> count by one. If the reference count reaches zero, memory allocated
> for the certificate is freed.
Which is not completely clear to me if that means
CertFreeCertificateContext should not be called, and maybe w8
implemented it that way?
I'm sending a patch which removes the calls, it seems to have fixed the
crash according to 10 flawless runs.
--
Rémi Bernon <rbernon at codeweavers.com>
More information about the wine-devel
mailing list