rsaenh(1/3): Reorder padding code to avoid unnecessary comparison

Juan Lang juan.lang at gmail.com
Mon Sep 10 17:06:10 CDT 2007


--Juan
-------------- next part --------------
From cf09ba4402c2ead93e68c8258ccd5cce61a90577 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Mon, 10 Sep 2007 15:04:39 -0700
Subject: [PATCH] Reorder padding code to avoid unnecessary comparison
---
 dlls/rsaenh/rsaenh.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/rsaenh/rsaenh.c b/dlls/rsaenh/rsaenh.c
index 8a27e2c..5221698 100644
--- a/dlls/rsaenh/rsaenh.c
+++ b/dlls/rsaenh/rsaenh.c
@@ -1907,16 +1907,16 @@ BOOL WINAPI RSAENH_CPEncrypt(HCRYPTPROV 
             *pdwDataLen = dwEncryptedLen;
             return TRUE;
         }
-
-        for (i=*pdwDataLen; i<dwEncryptedLen && i<dwBufLen; i++) pbData[i] = dwEncryptedLen - *pdwDataLen;
-        *pdwDataLen = dwEncryptedLen; 
-
-        if (*pdwDataLen > dwBufLen) 
-        {
+        else if (dwEncryptedLen > dwBufLen) {
+            *pdwDataLen = dwEncryptedLen;
             SetLastError(ERROR_MORE_DATA);
             return FALSE;
         }
-    
+
+        /* Pad final block with length bytes */
+        for (i=*pdwDataLen; i<dwEncryptedLen; i++) pbData[i] = dwEncryptedLen - *pdwDataLen;
+        *pdwDataLen = dwEncryptedLen; 
+
         for (i=0, in=pbData; i<*pdwDataLen; i+=pCryptKey->dwBlockLen, in+=pCryptKey->dwBlockLen) {
             switch (pCryptKey->dwMode) {
                 case CRYPT_MODE_ECB:
-- 
1.4.1


More information about the wine-patches mailing list