Juan Lang : cryptui: Add error checking to CryptUIWizExport.

Alexandre Julliard julliard at winehq.org
Tue Jan 27 09:06:53 CST 2009


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Sat Jan 24 12:02:35 2009 -0800

cryptui: Add error checking to CryptUIWizExport.

---

 dlls/cryptui/main.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c
index ca58a97..9ea7b93 100644
--- a/dlls/cryptui/main.c
+++ b/dlls/cryptui/main.c
@@ -6137,6 +6137,11 @@ static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
 {
     BOOL ret;
 
+    if (pContextInfo->dwSize != sizeof(CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO))
+    {
+        SetLastError(E_INVALIDARG);
+        return FALSE;
+    }
     switch (pExportInfo->dwSubjectChoice)
     {
     case CRYPTUI_WIZ_EXPORT_CRL_CONTEXT:
@@ -6152,6 +6157,10 @@ static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
     default:
         switch (pContextInfo->dwExportFormat)
         {
+        case CRYPTUI_WIZ_EXPORT_FORMAT_DER:
+            ret = save_der(file, pExportInfo->u.pCertContext->pbCertEncoded,
+             pExportInfo->u.pCertContext->cbCertEncoded);
+            break;
         case CRYPTUI_WIZ_EXPORT_FORMAT_BASE64:
             ret = save_base64(file,
              pExportInfo->u.pCertContext->pbCertEncoded,
@@ -6165,8 +6174,8 @@ static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,
             ret = FALSE;
             break;
         default:
-            ret = save_der(file, pExportInfo->u.pCertContext->pbCertEncoded,
-             pExportInfo->u.pCertContext->cbCertEncoded);
+            SetLastError(E_FAIL);
+            ret = FALSE;
         }
     }
     return ret;




More information about the wine-cvs mailing list