RT4320/GH705: Fix PEM parsing bug.
authorRich Salz <rsalz@akamai.com>
Wed, 17 Feb 2016 21:13:49 +0000 (16:13 -0500)
committerRich Salz <rsalz@openssl.org>
Mon, 22 Feb 2016 16:27:02 +0000 (11:27 -0500)
Also removing confusing pointer-alias variable.
Reviewed-by: Richard Levitte <levitte@openssl.org>
crypto/pem/pem_lib.c

index a75d9acf0343c4dff338ac116e8df44aaa6b8c5b..e31ea03da6600453d352ca70043cee3296034f8b 100644 (file)
@@ -489,7 +489,6 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
 {
     const EVP_CIPHER *enc = NULL;
     char *dekinfostart, c;
-    char **header_pp = &header;
 
     cipher->cipher = NULL;
     if ((header == NULL) || (*header == '\0') || (*header == '\n'))
@@ -536,13 +535,13 @@ int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
     }
     *header = '\0';
     cipher->cipher = enc = EVP_get_cipherbyname(dekinfostart);
-    *header = c;
+    *header++ = c;
 
     if (enc == NULL) {
         PEMerr(PEM_F_PEM_GET_EVP_CIPHER_INFO, PEM_R_UNSUPPORTED_ENCRYPTION);
         return (0);
     }
-    if (!load_iv(header_pp, &(cipher->iv[0]), EVP_CIPHER_iv_length(enc)))
+    if (!load_iv(&header, cipher->iv, EVP_CIPHER_iv_length(enc)))
         return (0);
 
     return (1);