From deaa584069984c57a96be9ab12573c7721ce3b6d Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 2 Aug 2020 14:38:31 -0700 Subject: [PATCH] yara: fix compilation without deprecated OpenSSL APIs Signed-off-by: Rosen Penev --- utils/yara/Makefile | 2 +- utils/yara/patches/010-openssl.patch | 50 ++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 utils/yara/patches/010-openssl.patch diff --git a/utils/yara/Makefile b/utils/yara/Makefile index 5294374037..272ae50e9e 100644 --- a/utils/yara/Makefile +++ b/utils/yara/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=yara PKG_VERSION:=4.0.2 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/VirusTotal/yara/tar.gz/v$(PKG_VERSION)? diff --git a/utils/yara/patches/010-openssl.patch b/utils/yara/patches/010-openssl.patch new file mode 100644 index 0000000000..bbd22fd56c --- /dev/null +++ b/utils/yara/patches/010-openssl.patch @@ -0,0 +1,50 @@ +--- a/libyara/include/yara/pe_utils.h ++++ b/libyara/include/yara/pe_utils.h +@@ -102,7 +102,7 @@ char *ord_lookup( + + #if HAVE_LIBCRYPTO + #include +-time_t ASN1_get_time_t(ASN1_TIME* time); ++time_t ASN1_get_time_t(const ASN1_TIME* time); + #endif + + #endif +diff --git a/libyara/modules/pe/pe.c b/libyara/modules/pe/pe.c +index 8eace26..ed43abe 100644 +--- a/libyara/modules/pe/pe.c ++++ b/libyara/modules/pe/pe.c +@@ -44,8 +44,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #endif + + #if OPENSSL_VERSION_NUMBER < 0x10100000L +-#define X509_getm_notBefore X509_get_notBefore +-#define X509_getm_notAfter X509_get_notAfter ++#define X509_get0_notBefore X509_get_notBefore ++#define X509_get0_notAfter X509_get_notAfter + #endif + #endif + +@@ -1433,10 +1433,10 @@ void _parse_pkcs7( + } + } + +- date_time = ASN1_get_time_t(X509_get_notBefore(cert)); ++ date_time = ASN1_get_time_t(X509_get0_notBefore(cert)); + set_integer(date_time, pe->object, "signatures[%i].not_before", *counter); + +- date_time = ASN1_get_time_t(X509_get_notAfter(cert)); ++ date_time = ASN1_get_time_t(X509_get0_notAfter(cert)); + set_integer(date_time, pe->object, "signatures[%i].not_after", *counter); + + (*counter)++; +--- a/libyara/modules/pe/pe_utils.c ++++ b/libyara/modules/pe/pe_utils.c +@@ -307,7 +307,7 @@ time_t timegm( + // and cleaned up. Also uses timegm(3) instead of mktime(3). + + time_t ASN1_get_time_t( +- ASN1_TIME* time) ++ const ASN1_TIME* time) + { + struct tm t; + const char* str = (const char*) time->data; -- 2.30.2