summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2014-06-01 05:12:50 +0000
committerjsing <>2014-06-01 05:12:50 +0000
commitba19bca9158ce84093f3b3d9ef5856fd7c95bd73 (patch)
treef05656897aa8e537052b576e969c13f51fc89c35
parent57fd6f36c8f806c6bbd5447c43fc778799143ff1 (diff)
downloadopenbsd-ba19bca9158ce84093f3b3d9ef5856fd7c95bd73.tar.gz
openbsd-ba19bca9158ce84093f3b3d9ef5856fd7c95bd73.tar.bz2
openbsd-ba19bca9158ce84093f3b3d9ef5856fd7c95bd73.zip
Avoid the use of an uninitialised variable. In reality, this is a non-issue
since the calculated value is not actually used in the uninitialised case. Change the code so that we only do the calculation if we actually need it. Issue detected by clang and reported by both brad@ and Brent Cook.
-rw-r--r--src/lib/libcrypto/pem/pem_lib.c3
-rw-r--r--src/lib/libssl/src/crypto/pem/pem_lib.c3
2 files changed, 2 insertions, 4 deletions
diff --git a/src/lib/libcrypto/pem/pem_lib.c b/src/lib/libcrypto/pem/pem_lib.c
index 945262f019..5938330d45 100644
--- a/src/lib/libcrypto/pem/pem_lib.c
+++ b/src/lib/libcrypto/pem/pem_lib.c
@@ -465,12 +465,11 @@ PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen,
465 EVP_CIPHER_CTX_cleanup(&ctx); 465 EVP_CIPHER_CTX_cleanup(&ctx);
466 OPENSSL_cleanse((char *)buf, sizeof(buf)); 466 OPENSSL_cleanse((char *)buf, sizeof(buf));
467 OPENSSL_cleanse((char *)key, sizeof(key)); 467 OPENSSL_cleanse((char *)key, sizeof(key));
468 j += i;
469 if (!o) { 468 if (!o) {
470 PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_DECRYPT); 469 PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_DECRYPT);
471 return (0); 470 return (0);
472 } 471 }
473 *plen = j; 472 *plen = j + i;
474 return (1); 473 return (1);
475} 474}
476 475
diff --git a/src/lib/libssl/src/crypto/pem/pem_lib.c b/src/lib/libssl/src/crypto/pem/pem_lib.c
index 945262f019..5938330d45 100644
--- a/src/lib/libssl/src/crypto/pem/pem_lib.c
+++ b/src/lib/libssl/src/crypto/pem/pem_lib.c
@@ -465,12 +465,11 @@ PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *plen,
465 EVP_CIPHER_CTX_cleanup(&ctx); 465 EVP_CIPHER_CTX_cleanup(&ctx);
466 OPENSSL_cleanse((char *)buf, sizeof(buf)); 466 OPENSSL_cleanse((char *)buf, sizeof(buf));
467 OPENSSL_cleanse((char *)key, sizeof(key)); 467 OPENSSL_cleanse((char *)key, sizeof(key));
468 j += i;
469 if (!o) { 468 if (!o) {
470 PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_DECRYPT); 469 PEMerr(PEM_F_PEM_DO_HEADER, PEM_R_BAD_DECRYPT);
471 return (0); 470 return (0);
472 } 471 }
473 *plen = j; 472 *plen = j + i;
474 return (1); 473 return (1);
475} 474}
476 475