Module: wine Branch: master Commit: ddb564bfe243b32a534595a2e38364012fc7b967 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ddb564bfe243b32a534595a2e3...
Author: Huw Davies huw@codeweavers.com Date: Fri Apr 13 12:02:47 2007 +0100
imagehlp: Add support for the indices array passed to ImageEnumerateCertificates.
---
dlls/imagehlp/integrity.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/imagehlp/integrity.c b/dlls/imagehlp/integrity.c index b3b8e66..99608b7 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;