btrbk: add mainProgram (#356350)
[NixPkgs.git] / pkgs / by-name / xa / xar / patches / 0004-Fix-compatibility-with-openssl-1.0.patch
blobbd1fed261c782f53529e54e9c862fc6b087c4c0b
1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: Fabian Groffen <grobian@gentoo.org>
3 Date: Tue, 1 Jan 2019 18:00:08 +0100
4 Subject: [PATCH 04/19] Fix compatibility with openssl-1.0
6 Patch-Source: https://github.com/gentoo/gentoo/blob/dce914f2bbf52360f45c90d877857df3c4c2a353/app-arch/xar/files/xar-1.8-openssl-1.1.patch
7 --
8 lib/hash.c: fix compilation with OpenSSL-1.1+
10 EVP_MD_CTX has become an anonymous struct now, so can't allocate size
11 for it anymore.
12 ---
13 xar/lib/hash.c | 10 ++++++----
14 1 file changed, 6 insertions(+), 4 deletions(-)
16 diff --git a/xar/lib/hash.c b/xar/lib/hash.c
17 index 66876ad..cb4f6cf 100644
18 --- a/xar/lib/hash.c
19 +++ b/xar/lib/hash.c
20 @@ -97,7 +97,7 @@ struct __xar_hash_t {
21 #ifdef __APPLE__
22 CCDigestRef digest;
23 #else
24 - EVP_MD_CTX digest;
25 + EVP_MD_CTX *digest;
26 const EVP_MD *type;
27 #endif
28 unsigned int length;
29 @@ -118,7 +118,8 @@ xar_hash_t xar_hash_new(const char *digest_name, void *context) {
30 #else
31 OpenSSL_add_all_digests();
32 HASH_CTX(hash)->type = EVP_get_digestbyname(digest_name);
33 - EVP_DigestInit(&HASH_CTX(hash)->digest, HASH_CTX(hash)->type);
34 + HASH_CTX(hash)->digest = EVP_MD_CTX_create();
35 + EVP_DigestInit(HASH_CTX(hash)->digest, HASH_CTX(hash)->type);
36 #endif
38 HASH_CTX(hash)->digest_name = strdup(digest_name);
39 @@ -138,7 +139,7 @@ void xar_hash_update(xar_hash_t hash, void *buffer, size_t nbyte) {
40 #ifdef __APPLE__
41 CCDigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte);
42 #else
43 - EVP_DigestUpdate(&HASH_CTX(hash)->digest, buffer, nbyte);
44 + EVP_DigestUpdate(HASH_CTX(hash)->digest, buffer, nbyte);
45 #endif
48 @@ -155,7 +156,8 @@ void *xar_hash_finish(xar_hash_t hash, size_t *nbyte) {
49 CCDigestFinal(HASH_CTX(hash)->digest, buffer);
50 CCDigestDestroy(HASH_CTX(hash)->digest);
51 #else
52 - EVP_DigestFinal(&HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length);
53 + EVP_DigestFinal(HASH_CTX(hash)->digest, buffer, &HASH_CTX(hash)->length);
54 + EVP_MD_CTX_destroy(HASH_CTX(hash)->digest);
55 #endif
57 *nbyte = HASH_CTX(hash)->length;
58 --
59 2.44.1