Fix casts in dlls/crypt32/decode.c

Gerald Pfeifer gerald at pfeifer.com
Sun Oct 14 12:08:49 CDT 2007


The patch below fixes the following diagnostics (rightfully) issued by
GCC 4.3 and later.  If you prefer, we could use LOWORD everywhere, also
for the case labels, but my current patch seems to be more natural.

decode.c:4365: warning: cast from pointer to integer of different size
decode.c:4368: warning: cast from pointer to integer of different size
decode.c:4371: warning: cast from pointer to integer of different size
decode.c:4374: warning: cast from pointer to integer of different size
decode.c:4377: warning: cast from pointer to integer of different size
decode.c:4380: warning: cast from pointer to integer of different size
decode.c:4383: warning: cast from pointer to integer of different size
decode.c:4386: warning: cast from pointer to integer of different size
decode.c:4389: warning: cast from pointer to integer of different size
decode.c:4392: warning: cast from pointer to integer of different size
decode.c:4395: warning: cast from pointer to integer of different size
decode.c:4398: warning: cast from pointer to integer of different size
decode.c:4401: warning: cast from pointer to integer of different size
decode.c:4404: warning: cast from pointer to integer of different size
decode.c:4407: warning: cast from pointer to integer of different size
decode.c:4410: warning: cast from pointer to integer of different size
decode.c:4413: warning: cast from pointer to integer of different size
decode.c:4414: warning: cast from pointer to integer of different size
decode.c:4417: warning: cast from pointer to integer of different size
decode.c:4420: warning: cast from pointer to integer of different size
decode.c:4423: warning: cast from pointer to integer of different size
decode.c:4426: warning: cast from pointer to integer of different size
decode.c:4429: warning: cast from pointer to integer of different size
decode.c:4432: warning: cast from pointer to integer of different size
decode.c:4435: warning: cast from pointer to integer of different size
decode.c:4438: warning: cast from pointer to integer of different size
decode.c:4441: warning: cast from pointer to integer of different size
decode.c:4444: warning: cast from pointer to integer of different size
decode.c:4447: warning: cast from pointer to integer of different size
decode.c:4450: warning: cast from pointer to integer of different size
decode.c:4453: warning: cast from pointer to integer of different size
decode.c:4456: warning: cast from pointer to integer of different size
decode.c:4459: warning: cast from pointer to integer of different size
encode.c:3491: warning: cast from pointer to integer of different size
encode.c:3494: warning: cast from pointer to integer of different size
encode.c:3497: warning: cast from pointer to integer of different size
encode.c:3500: warning: cast from pointer to integer of different size
encode.c:3503: warning: cast from pointer to integer of different size
encode.c:3506: warning: cast from pointer to integer of different size
encode.c:3509: warning: cast from pointer to integer of different size
encode.c:3512: warning: cast from pointer to integer of different size
encode.c:3515: warning: cast from pointer to integer of different size
encode.c:3518: warning: cast from pointer to integer of different size
encode.c:3521: warning: cast from pointer to integer of different size
encode.c:3524: warning: cast from pointer to integer of different size
encode.c:3527: warning: cast from pointer to integer of different size
encode.c:3530: warning: cast from pointer to integer of different size
encode.c:3533: warning: cast from pointer to integer of different size
encode.c:3536: warning: cast from pointer to integer of different size
encode.c:3539: warning: cast from pointer to integer of different size
encode.c:3542: warning: cast from pointer to integer of different size
encode.c:3543: warning: cast from pointer to integer of different size
encode.c:3546: warning: cast from pointer to integer of different size
encode.c:3549: warning: cast from pointer to integer of different size
encode.c:3552: warning: cast from pointer to integer of different size
encode.c:3555: warning: cast from pointer to integer of different size
encode.c:3558: warning: cast from pointer to integer of different size
encode.c:3561: warning: cast from pointer to integer of different size
encode.c:3564: warning: cast from pointer to integer of different size
encode.c:3567: warning: cast from pointer to integer of different size
encode.c:3570: warning: cast from pointer to integer of different size
encode.c:3573: warning: cast from pointer to integer of different size
encode.c:3576: warning: cast from pointer to integer of different size
encode.c:3579: warning: cast from pointer to integer of different size
encode.c:3582: warning: cast from pointer to integer of different size
encode.c:3585: warning: cast from pointer to integer of different size

Gerald

ChangeLog:
Fix incorrect casts in X509_CERT and friends.

Index: decode.c
===================================================================
RCS file: /home/wine/wine/dlls/crypt32/decode.c,v
retrieving revision 1.87
diff -u -3 -p -r1.87 decode.c
--- decode.c	12 Oct 2007 10:24:15 -0000	1.87
+++ decode.c	14 Oct 2007 14:17:58 -0000
@@ -4360,103 +4360,103 @@ static CryptDecodeObjectExFunc CRYPT_Get
     }
     if (!HIWORD(lpszStructType))
     {
-        switch (LOWORD(lpszStructType))
+        switch ((DWORD)lpszStructType)
         {
-        case (WORD)X509_CERT:
+        case (DWORD)X509_CERT:
             decodeFunc = CRYPT_AsnDecodeCertSignedContent;
             break;
-        case (WORD)X509_CERT_TO_BE_SIGNED:
+        case (DWORD)X509_CERT_TO_BE_SIGNED:
             decodeFunc = CRYPT_AsnDecodeCert;
             break;
-        case (WORD)X509_CERT_CRL_TO_BE_SIGNED:
+        case (DWORD)X509_CERT_CRL_TO_BE_SIGNED:
             decodeFunc = CRYPT_AsnDecodeCRL;
             break;
-        case (WORD)X509_EXTENSIONS:
+        case (DWORD)X509_EXTENSIONS:
             decodeFunc = CRYPT_AsnDecodeExtensions;
             break;
-        case (WORD)X509_NAME_VALUE:
+        case (DWORD)X509_NAME_VALUE:
             decodeFunc = CRYPT_AsnDecodeNameValue;
             break;
-        case (WORD)X509_NAME:
+        case (DWORD)X509_NAME:
             decodeFunc = CRYPT_AsnDecodeName;
             break;
-        case (WORD)X509_PUBLIC_KEY_INFO:
+        case (DWORD)X509_PUBLIC_KEY_INFO:
             decodeFunc = CRYPT_AsnDecodePubKeyInfo;
             break;
-        case (WORD)X509_AUTHORITY_KEY_ID:
+        case (DWORD)X509_AUTHORITY_KEY_ID:
             decodeFunc = CRYPT_AsnDecodeAuthorityKeyId;
             break;
-        case (WORD)X509_ALTERNATE_NAME:
+        case (DWORD)X509_ALTERNATE_NAME:
             decodeFunc = CRYPT_AsnDecodeAltName;
             break;
-        case (WORD)X509_BASIC_CONSTRAINTS:
+        case (DWORD)X509_BASIC_CONSTRAINTS:
             decodeFunc = CRYPT_AsnDecodeBasicConstraints;
             break;
-        case (WORD)X509_BASIC_CONSTRAINTS2:
+        case (DWORD)X509_BASIC_CONSTRAINTS2:
             decodeFunc = CRYPT_AsnDecodeBasicConstraints2;
             break;
-        case (WORD)RSA_CSP_PUBLICKEYBLOB:
+        case (DWORD)RSA_CSP_PUBLICKEYBLOB:
             decodeFunc = CRYPT_AsnDecodeRsaPubKey;
             break;
-        case (WORD)X509_UNICODE_NAME:
+        case (DWORD)X509_UNICODE_NAME:
             decodeFunc = CRYPT_AsnDecodeUnicodeName;
             break;
-        case (WORD)PKCS_ATTRIBUTE:
+        case (DWORD)PKCS_ATTRIBUTE:
             decodeFunc = CRYPT_AsnDecodePKCSAttribute;
             break;
-        case (WORD)X509_UNICODE_NAME_VALUE:
+        case (DWORD)X509_UNICODE_NAME_VALUE:
             decodeFunc = CRYPT_AsnDecodeUnicodeNameValue;
             break;
-        case (WORD)X509_OCTET_STRING:
+        case (DWORD)X509_OCTET_STRING:
             decodeFunc = CRYPT_AsnDecodeOctets;
             break;
-        case (WORD)X509_BITS:
-        case (WORD)X509_KEY_USAGE:
+        case (DWORD)X509_BITS:
+        case (DWORD)X509_KEY_USAGE:
             decodeFunc = CRYPT_AsnDecodeBits;
             break;
-        case (WORD)X509_INTEGER:
+        case (DWORD)X509_INTEGER:
             decodeFunc = CRYPT_AsnDecodeInt;
             break;
-        case (WORD)X509_MULTI_BYTE_INTEGER:
+        case (DWORD)X509_MULTI_BYTE_INTEGER:
             decodeFunc = CRYPT_AsnDecodeInteger;
             break;
-        case (WORD)X509_MULTI_BYTE_UINT:
+        case (DWORD)X509_MULTI_BYTE_UINT:
             decodeFunc = CRYPT_AsnDecodeUnsignedInteger;
             break;
-        case (WORD)X509_ENUMERATED:
+        case (DWORD)X509_ENUMERATED:
             decodeFunc = CRYPT_AsnDecodeEnumerated;
             break;
-        case (WORD)X509_CHOICE_OF_TIME:
+        case (DWORD)X509_CHOICE_OF_TIME:
             decodeFunc = CRYPT_AsnDecodeChoiceOfTime;
             break;
-        case (WORD)X509_AUTHORITY_KEY_ID2:
+        case (DWORD)X509_AUTHORITY_KEY_ID2:
             decodeFunc = CRYPT_AsnDecodeAuthorityKeyId2;
             break;
-        case (WORD)PKCS_CONTENT_INFO:
+        case (DWORD)PKCS_CONTENT_INFO:
             decodeFunc = CRYPT_AsnDecodePKCSContentInfo;
             break;
-        case (WORD)X509_SEQUENCE_OF_ANY:
+        case (DWORD)X509_SEQUENCE_OF_ANY:
             decodeFunc = CRYPT_AsnDecodeSequenceOfAny;
             break;
-        case (WORD)PKCS_UTC_TIME:
+        case (DWORD)PKCS_UTC_TIME:
             decodeFunc = CRYPT_AsnDecodeUtcTime;
             break;
-        case (WORD)X509_CRL_DIST_POINTS:
+        case (DWORD)X509_CRL_DIST_POINTS:
             decodeFunc = CRYPT_AsnDecodeCRLDistPoints;
             break;
-        case (WORD)X509_ENHANCED_KEY_USAGE:
+        case (DWORD)X509_ENHANCED_KEY_USAGE:
             decodeFunc = CRYPT_AsnDecodeEnhancedKeyUsage;
             break;
-        case (WORD)PKCS_ATTRIBUTES:
+        case (DWORD)PKCS_ATTRIBUTES:
             decodeFunc = CRYPT_AsnDecodePKCSAttributes;
             break;
-        case (WORD)X509_ISSUING_DIST_POINT:
+        case (DWORD)X509_ISSUING_DIST_POINT:
             decodeFunc = CRYPT_AsnDecodeIssuingDistPoint;
             break;
-        case (WORD)X509_NAME_CONSTRAINTS:
+        case (DWORD)X509_NAME_CONSTRAINTS:
             decodeFunc = CRYPT_AsnDecodeNameConstraints;
             break;
-        case (WORD)PKCS7_SIGNER_INFO:
+        case (DWORD)PKCS7_SIGNER_INFO:
             decodeFunc = CRYPT_AsnDecodePKCSSignerInfo;
             break;
         }
Index: encode.c
===================================================================
RCS file: /home/wine/wine/dlls/crypt32/encode.c,v
retrieving revision 1.92
diff -u -3 -p -r1.92 encode.c
--- encode.c	12 Oct 2007 10:24:12 -0000	1.92
+++ encode.c	14 Oct 2007 14:17:59 -0000
@@ -3486,103 +3486,103 @@ static CryptEncodeObjectExFunc CRYPT_Get
 
     if (!HIWORD(lpszStructType))
     {
-        switch (LOWORD(lpszStructType))
+        switch ((DWORD)lpszStructType)
         {
-        case (WORD)X509_CERT:
+        case (DWORD)X509_CERT:
             encodeFunc = CRYPT_AsnEncodeCert;
             break;
-        case (WORD)X509_CERT_TO_BE_SIGNED:
+        case (DWORD)X509_CERT_TO_BE_SIGNED:
             encodeFunc = CRYPT_AsnEncodeCertInfo;
             break;
-        case (WORD)X509_CERT_CRL_TO_BE_SIGNED:
+        case (DWORD)X509_CERT_CRL_TO_BE_SIGNED:
             encodeFunc = CRYPT_AsnEncodeCRLInfo;
             break;
-        case (WORD)X509_EXTENSIONS:
+        case (DWORD)X509_EXTENSIONS:
             encodeFunc = CRYPT_AsnEncodeExtensions;
             break;
-        case (WORD)X509_NAME_VALUE:
+        case (DWORD)X509_NAME_VALUE:
             encodeFunc = CRYPT_AsnEncodeNameValue;
             break;
-        case (WORD)X509_NAME:
+        case (DWORD)X509_NAME:
             encodeFunc = CRYPT_AsnEncodeName;
             break;
-        case (WORD)X509_PUBLIC_KEY_INFO:
+        case (DWORD)X509_PUBLIC_KEY_INFO:
             encodeFunc = CRYPT_AsnEncodePubKeyInfo;
             break;
-        case (WORD)X509_AUTHORITY_KEY_ID:
+        case (DWORD)X509_AUTHORITY_KEY_ID:
             encodeFunc = CRYPT_AsnEncodeAuthorityKeyId;
             break;
-        case (WORD)X509_ALTERNATE_NAME:
+        case (DWORD)X509_ALTERNATE_NAME:
             encodeFunc = CRYPT_AsnEncodeAltName;
             break;
-        case (WORD)X509_BASIC_CONSTRAINTS:
+        case (DWORD)X509_BASIC_CONSTRAINTS:
             encodeFunc = CRYPT_AsnEncodeBasicConstraints;
             break;
-        case (WORD)X509_BASIC_CONSTRAINTS2:
+        case (DWORD)X509_BASIC_CONSTRAINTS2:
             encodeFunc = CRYPT_AsnEncodeBasicConstraints2;
             break;
-        case (WORD)RSA_CSP_PUBLICKEYBLOB:
+        case (DWORD)RSA_CSP_PUBLICKEYBLOB:
             encodeFunc = CRYPT_AsnEncodeRsaPubKey;
             break;
-        case (WORD)X509_UNICODE_NAME:
+        case (DWORD)X509_UNICODE_NAME:
             encodeFunc = CRYPT_AsnEncodeUnicodeName;
             break;
-        case (WORD)PKCS_CONTENT_INFO:
+        case (DWORD)PKCS_CONTENT_INFO:
             encodeFunc = CRYPT_AsnEncodePKCSContentInfo;
             break;
-        case (WORD)PKCS_ATTRIBUTE:
+        case (DWORD)PKCS_ATTRIBUTE:
             encodeFunc = CRYPT_AsnEncodePKCSAttribute;
             break;
-        case (WORD)X509_UNICODE_NAME_VALUE:
+        case (DWORD)X509_UNICODE_NAME_VALUE:
             encodeFunc = CRYPT_AsnEncodeUnicodeNameValue;
             break;
-        case (WORD)X509_OCTET_STRING:
+        case (DWORD)X509_OCTET_STRING:
             encodeFunc = CRYPT_AsnEncodeOctets;
             break;
-        case (WORD)X509_BITS:
-        case (WORD)X509_KEY_USAGE:
+        case (DWORD)X509_BITS:
+        case (DWORD)X509_KEY_USAGE:
             encodeFunc = CRYPT_AsnEncodeBits;
             break;
-        case (WORD)X509_INTEGER:
+        case (DWORD)X509_INTEGER:
             encodeFunc = CRYPT_AsnEncodeInt;
             break;
-        case (WORD)X509_MULTI_BYTE_INTEGER:
+        case (DWORD)X509_MULTI_BYTE_INTEGER:
             encodeFunc = CRYPT_AsnEncodeInteger;
             break;
-        case (WORD)X509_MULTI_BYTE_UINT:
+        case (DWORD)X509_MULTI_BYTE_UINT:
             encodeFunc = CRYPT_AsnEncodeUnsignedInteger;
             break;
-        case (WORD)X509_ENUMERATED:
+        case (DWORD)X509_ENUMERATED:
             encodeFunc = CRYPT_AsnEncodeEnumerated;
             break;
-        case (WORD)X509_CHOICE_OF_TIME:
+        case (DWORD)X509_CHOICE_OF_TIME:
             encodeFunc = CRYPT_AsnEncodeChoiceOfTime;
             break;
-        case (WORD)X509_AUTHORITY_KEY_ID2:
+        case (DWORD)X509_AUTHORITY_KEY_ID2:
             encodeFunc = CRYPT_AsnEncodeAuthorityKeyId2;
             break;
-        case (WORD)X509_SEQUENCE_OF_ANY:
+        case (DWORD)X509_SEQUENCE_OF_ANY:
             encodeFunc = CRYPT_AsnEncodeSequenceOfAny;
             break;
-        case (WORD)PKCS_UTC_TIME:
+        case (DWORD)PKCS_UTC_TIME:
             encodeFunc = CRYPT_AsnEncodeUtcTime;
             break;
-        case (WORD)X509_CRL_DIST_POINTS:
+        case (DWORD)X509_CRL_DIST_POINTS:
             encodeFunc = CRYPT_AsnEncodeCRLDistPoints;
             break;
-        case (WORD)X509_ENHANCED_KEY_USAGE:
+        case (DWORD)X509_ENHANCED_KEY_USAGE:
             encodeFunc = CRYPT_AsnEncodeEnhancedKeyUsage;
             break;
-        case (WORD)PKCS_ATTRIBUTES:
+        case (DWORD)PKCS_ATTRIBUTES:
             encodeFunc = CRYPT_AsnEncodePKCSAttributes;
             break;
-        case (WORD)X509_ISSUING_DIST_POINT:
+        case (DWORD)X509_ISSUING_DIST_POINT:
             encodeFunc = CRYPT_AsnEncodeIssuingDistPoint;
             break;
-        case (WORD)X509_NAME_CONSTRAINTS:
+        case (DWORD)X509_NAME_CONSTRAINTS:
             encodeFunc = CRYPT_AsnEncodeNameConstraints;
             break;
-        case (WORD)PKCS7_SIGNER_INFO:
+        case (DWORD)PKCS7_SIGNER_INFO:
             encodeFunc = CRYPT_AsnEncodePKCSSignerInfo;
             break;
         }



More information about the wine-patches mailing list