From: Anatol Belski Date: Fri, 19 Sep 2014 08:33:01 +0000 (+0200) Subject: fix an always true condition and improve the error check X-Git-Tag: POST_NATIVE_TLS_MERGE^2~197 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=953386edfd4f0d59c3a8ead1ea90b20e49796ea3;p=php fix an always true condition and improve the error check --- diff --git a/ext/standard/md5.c b/ext/standard/md5.c index 4938babf7a..7d24dfeb7a 100644 --- a/ext/standard/md5.c +++ b/ext/standard/md5.c @@ -99,14 +99,18 @@ PHP_NAMED_FUNCTION(php_if_md5_file) PHP_MD5Update(&context, buf, n); } - PHP_MD5Final(digest, &context); - - php_stream_close(stream); + /* XXX this probably can be improved with some number of retries */ + if (!php_stream_eof(stream)) { + php_stream_close(stream); + PHP_MD5Final(digest, &context); - if (n<0) { RETURN_FALSE; } + php_stream_close(stream); + + PHP_MD5Final(digest, &context); + if (raw_output) { RETURN_STRINGL(digest, 16); } else { @@ -384,5 +388,5 @@ PHPAPI void PHP_MD5Final(unsigned char *result, PHP_MD5_CTX *ctx) result[14] = ctx->d >> 16; result[15] = ctx->d >> 24; - memset(ctx, 0, sizeof(*ctx)); + ZEND_SECURE_ZERO(ctx, sizeof(*ctx)); }