Aric Stewart : imagehlp: Improve last error handling in ImageGetCertificateData.

Alexandre Julliard julliard at winehq.org
Wed Dec 12 09:29:22 CST 2007


Module: wine
Branch: master
Commit: 1e3d65dbb8d3ecc182db3291b460830f0e99c714
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1e3d65dbb8d3ecc182db3291b460830f0e99c714

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Dec 12 11:11:07 2007 +0900

imagehlp: Improve last error handling in ImageGetCertificateData.

---

 dlls/imagehlp/integrity.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/dlls/imagehlp/integrity.c b/dlls/imagehlp/integrity.c
index df6de0f..bbec56b 100644
--- a/dlls/imagehlp/integrity.c
+++ b/dlls/imagehlp/integrity.c
@@ -226,19 +226,25 @@ BOOL WINAPI ImageGetCertificateData(
 
     TRACE("%p %d %p %p\n", handle, Index, Certificate, RequiredLength);
 
+    if( !RequiredLength)
+    {
+        SetLastError( ERROR_INVALID_PARAMETER );
+        return FALSE;
+    }
+
     if( !IMAGEHLP_GetCertificateOffset( handle, Index, &ofs, &size ) )
         return FALSE;
 
-    if( !Certificate )
+    if( *RequiredLength < size )
     {
         *RequiredLength = size;
-        return TRUE;
+        SetLastError( ERROR_INSUFFICIENT_BUFFER );
+        return FALSE;
     }
 
-    if( *RequiredLength < size )
+    if( !Certificate )
     {
-        *RequiredLength = size;
-        SetLastError( ERROR_INSUFFICIENT_BUFFER );
+        SetLastError( ERROR_INVALID_PARAMETER );
         return FALSE;
     }
 
@@ -255,6 +261,7 @@ BOOL WINAPI ImageGetCertificateData(
         return FALSE;
 
     TRACE("OK\n");
+    SetLastError( NO_ERROR );
 
     return TRUE;
 }




More information about the wine-cvs mailing list