From eb77b80b9dfd1cee611562bf7df378ecb65f68e3 Mon Sep 17 00:00:00 2001 From: Greg Beaver Date: Mon, 9 Jun 2008 16:07:18 +0000 Subject: [PATCH] fix compile warnings if openssl is enabled statically. fix dangerous use of wrong length var in openssl signature verification --- ext/phar/phar.c | 14 ++++++++++---- ext/phar/phar.phar | Bin 43107 -> 15252 bytes 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/ext/phar/phar.c b/ext/phar/phar.c index fc7870fe55..ded61ce31c 100644 --- a/ext/phar/phar.c +++ b/ext/phar/phar.c @@ -40,7 +40,9 @@ #endif +#ifndef PHAR_HAVE_OPENSSL static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, char *key, int key_len, char **signature, int *signature_len TSRMLS_DC); +#endif ZEND_DECLARE_MODULE_GLOBALS(phar) #if PHP_VERSION_ID >= 50300 @@ -490,11 +492,11 @@ static const char hexChars[] = "0123456789ABCDEF"; static int phar_hex_str(const char *digest, size_t digest_len, char ** signature) { int pos = -1; - size_t len; + size_t len = 0; *signature = (char*)safe_emalloc(digest_len, 2, 1); - for(len = 0; len < digest_len; ++len) { + for (; len < digest_len; ++len) { (*signature)[++pos] = hexChars[((const unsigned char *)digest)[len] >> 4]; (*signature)[++pos] = hexChars[((const unsigned char *)digest)[len] & 0x0F]; } @@ -632,12 +634,13 @@ int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char *alias, EVP_PKEY *key; EVP_MD *mdtype = (EVP_MD *) EVP_sha1(); EVP_MD_CTX md_ctx; +#else + int tempsig; #endif php_uint32 signature_len, pubkey_len; char *sig, *pubkey = NULL, *pfile; off_t whence; php_stream *pfp; - int tempsig; if (!zend_hash_exists(&module_registry, "openssl", sizeof("openssl"))) { efree(savebuf); @@ -765,7 +768,8 @@ int phar_parse_pharfile(php_stream *fp, char *fname, int fname_len, char *alias, } EVP_MD_CTX_cleanup(&md_ctx); #endif - sig_len = phar_hex_str((const char*)sig, sig_len, &signature); + + sig_len = phar_hex_str((const char*)sig, signature_len, &signature); efree(sig); } break; @@ -2241,6 +2245,7 @@ char *phar_create_default_stub(const char *index_php, const char *web_index, siz return stub; } +#ifndef PHAR_HAVE_OPENSSL static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, char *key, int key_len, char **signature, int *signature_len TSRMLS_DC) { zend_fcall_info fci; @@ -2350,6 +2355,7 @@ static int phar_call_openssl_signverify(int is_sign, php_stream *fp, off_t end, return FAILURE; } } +#endif /* #ifndef PHAR_HAVE_OPENSSL */ /** * Save phar contents to disk diff --git a/ext/phar/phar.phar b/ext/phar/phar.phar index cc7c3d95bea90f37a0ddff3dd8a46dfd16408427..335a284b7a7726e55f8265d000f70fcf4c5a1c95 100755 GIT binary patch delta 9574 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 -- 2.50.1