James Hawkins : crypt32: Simplify
CRYPT_AsnDecodeUnicodeNameValueInternal, getting rid of a warning.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Sep 7 09:20:20 CDT 2006
Module: wine
Branch: master
Commit: 382d06794b40391b0cf7961dec89260735897dde
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=382d06794b40391b0cf7961dec89260735897dde
Author: James Hawkins <truiken at gmail.com>
Date: Wed Aug 30 14:08:38 2006 -0700
crypt32: Simplify CRYPT_AsnDecodeUnicodeNameValueInternal, getting rid of a warning.
---
dlls/crypt32/decode.c | 104 ++++++++++++++++++++++++-------------------------
1 files changed, 51 insertions(+), 53 deletions(-)
diff --git a/dlls/crypt32/decode.c b/dlls/crypt32/decode.c
index d1e4006..4e20de4 100644
--- a/dlls/crypt32/decode.c
+++ b/dlls/crypt32/decode.c
@@ -1511,67 +1511,65 @@ static BOOL WINAPI CRYPT_AsnDecodeUnicod
break;
default:
SetLastError(CRYPT_E_ASN1_BADTAG);
+ return FALSE;
+ }
+
+ if (!value)
+ *pcbStructInfo = bytesNeeded;
+ else if (*pcbStructInfo < bytesNeeded)
+ {
+ *pcbStructInfo = bytesNeeded;
+ SetLastError(ERROR_MORE_DATA);
ret = FALSE;
}
- if (ret)
+ else
{
- if (!value)
- *pcbStructInfo = bytesNeeded;
- else if (*pcbStructInfo < bytesNeeded)
- {
- *pcbStructInfo = bytesNeeded;
- SetLastError(ERROR_MORE_DATA);
- ret = FALSE;
- }
- else
+ *pcbStructInfo = bytesNeeded;
+ value->dwValueType = valueType;
+ if (dataLen)
{
- *pcbStructInfo = bytesNeeded;
- value->dwValueType = valueType;
- if (dataLen)
- {
- DWORD i;
- LPWSTR str = (LPWSTR)value->Value.pbData;
+ DWORD i;
+ LPWSTR str = (LPWSTR)value->Value.pbData;
- assert(value->Value.pbData);
- switch (pbEncoded[0])
- {
- case ASN_NUMERICSTRING:
- case ASN_PRINTABLESTRING:
- case ASN_IA5STRING:
- case ASN_T61STRING:
- case ASN_VIDEOTEXSTRING:
- case ASN_GRAPHICSTRING:
- case ASN_VISIBLESTRING:
- case ASN_GENERALSTRING:
- value->Value.cbData = dataLen * 2;
- for (i = 0; i < dataLen; i++)
- str[i] = pbEncoded[1 + lenBytes + i];
- break;
- case ASN_UNIVERSALSTRING:
- value->Value.cbData = dataLen / 2;
- for (i = 0; i < dataLen / 4; i++)
- str[i] = (pbEncoded[1 + lenBytes + 2 * i + 2] << 8)
- | pbEncoded[1 + lenBytes + 2 * i + 3];
- break;
- case ASN_BMPSTRING:
- value->Value.cbData = dataLen;
- for (i = 0; i < dataLen / 2; i++)
- str[i] = (pbEncoded[1 + lenBytes + 2 * i] << 8) |
- pbEncoded[1 + lenBytes + 2 * i + 1];
- break;
- case ASN_UTF8STRING:
- value->Value.cbData = MultiByteToWideChar(CP_UTF8, 0,
- (LPSTR)pbEncoded + 1 + lenBytes, dataLen,
- str, bytesNeeded - sizeof(CERT_NAME_VALUE)) * 2;
- break;
- }
- }
- else
+ assert(value->Value.pbData);
+ switch (pbEncoded[0])
{
- value->Value.cbData = 0;
- value->Value.pbData = NULL;
+ case ASN_NUMERICSTRING:
+ case ASN_PRINTABLESTRING:
+ case ASN_IA5STRING:
+ case ASN_T61STRING:
+ case ASN_VIDEOTEXSTRING:
+ case ASN_GRAPHICSTRING:
+ case ASN_VISIBLESTRING:
+ case ASN_GENERALSTRING:
+ value->Value.cbData = dataLen * 2;
+ for (i = 0; i < dataLen; i++)
+ str[i] = pbEncoded[1 + lenBytes + i];
+ break;
+ case ASN_UNIVERSALSTRING:
+ value->Value.cbData = dataLen / 2;
+ for (i = 0; i < dataLen / 4; i++)
+ str[i] = (pbEncoded[1 + lenBytes + 2 * i + 2] << 8)
+ | pbEncoded[1 + lenBytes + 2 * i + 3];
+ break;
+ case ASN_BMPSTRING:
+ value->Value.cbData = dataLen;
+ for (i = 0; i < dataLen / 2; i++)
+ str[i] = (pbEncoded[1 + lenBytes + 2 * i] << 8) |
+ pbEncoded[1 + lenBytes + 2 * i + 1];
+ break;
+ case ASN_UTF8STRING:
+ value->Value.cbData = MultiByteToWideChar(CP_UTF8, 0,
+ (LPSTR)pbEncoded + 1 + lenBytes, dataLen,
+ str, bytesNeeded - sizeof(CERT_NAME_VALUE)) * 2;
+ break;
}
}
+ else
+ {
+ value->Value.cbData = 0;
+ value->Value.pbData = NULL;
+ }
}
}
return ret;
More information about the wine-cvs
mailing list