From ddb564bfe243b32a534595a2e38364012fc7b967 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Fri, 13 Apr 2007 12:02:47 +0100 Subject: [PATCH] imagehlp: Add support for the indices array passed to ImageEnumerateCertificates. --- dlls/imagehlp/integrity.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/dlls/imagehlp/integrity.c b/dlls/imagehlp/integrity.c index b3b8e66d298..99608b70a72 100644 --- a/dlls/imagehlp/integrity.c +++ b/dlls/imagehlp/integrity.c @@ -161,7 +161,7 @@ BOOL WINAPI ImageEnumerateCertificates( HANDLE handle, WORD TypeFilter, PDWORD CertificateCount, PDWORD Indices, DWORD IndexCount) { - DWORD size, count, offset, sd_VirtualAddr; + DWORD size, count, offset, sd_VirtualAddr, index; WIN_CERTIFICATE hdr; const size_t cert_hdr_size = sizeof hdr - sizeof hdr.bCertificate; BOOL r; @@ -169,17 +169,12 @@ BOOL WINAPI ImageEnumerateCertificates( TRACE("%p %hd %p %p %d\n", handle, TypeFilter, CertificateCount, Indices, IndexCount); - if( Indices ) - { - FIXME("Indices not handled!\n"); - return FALSE; - } - r = IMAGEHLP_GetSecurityDirOffset( handle, &sd_VirtualAddr, &size ); if( !r ) return FALSE; offset = 0; + index = 0; *CertificateCount = 0; while( offset < size ) { @@ -207,10 +202,13 @@ BOOL WINAPI ImageEnumerateCertificates( (TypeFilter == hdr.wCertificateType) ) { (*CertificateCount)++; + if(Indices && *CertificateCount <= IndexCount) + *Indices++ = index; } /* next certificate */ offset += hdr.dwLength; + index++; } return TRUE; -- 2.11.4.GIT