summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2019-01-26 12:35:43 +0100
committerPacho Ramos <pacho@gentoo.org>2019-01-26 13:42:31 +0100
commita0435f350a1be5d73c2d0a7dc6377669ec7668dc (patch)
tree7c6998048e92b97a37b425bc02933e8f16f68596 /sys-fs/lessfs/files/lessfs-1.7.0-openssl11.patch
parentmedia-plugins/calf-{0.90.0-r2,9999}: fixed gnome2 icon cache update (diff)
downloadgentoo-a0435f350a1be5d73c2d0a7dc6377669ec7668dc.tar.gz
gentoo-a0435f350a1be5d73c2d0a7dc6377669ec7668dc.tar.bz2
gentoo-a0435f350a1be5d73c2d0a7dc6377669ec7668dc.zip
sys-fs/lessfs: Fix openssl-1.1
Closes: https://bugs.gentoo.org/674422 Package-Manager: Portage-2.3.58, Repoman-2.3.12 Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'sys-fs/lessfs/files/lessfs-1.7.0-openssl11.patch')
-rw-r--r--sys-fs/lessfs/files/lessfs-1.7.0-openssl11.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/sys-fs/lessfs/files/lessfs-1.7.0-openssl11.patch b/sys-fs/lessfs/files/lessfs-1.7.0-openssl11.patch
new file mode 100644
index 000000000000..45f24eba3b15
--- /dev/null
+++ b/sys-fs/lessfs/files/lessfs-1.7.0-openssl11.patch
@@ -0,0 +1,72 @@
+--- lessfs-1.7.0/lib_crypto.c.org 2011-09-30 20:13:08.000000000 +0200
++++ lessfs-1.7.0/lib_crypto.c 2018-09-26 13:16:08.995599693 +0200
+@@ -78,7 +78,7 @@ unsigned char *safepassword()
+ DAT *lfsencrypt(unsigned char *unenc, unsigned long size)
+ {
+ unsigned char *safepasswd;
+- EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX *ctx;
+ DAT *encoded;
+ int olen, tlen;
+
+@@ -86,19 +86,24 @@ DAT *lfsencrypt(unsigned char *unenc, un
+
+ pthread_mutex_lock(&crypto_mutex);
+ safepasswd = safepassword();
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_EncryptInit(&ctx, EVP_bf_cbc(), safepasswd, config->iv);
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL) {
++ die_cryptoerr("can't allocate memory for new ctx");
++ }
++ EVP_EncryptInit(ctx, EVP_bf_cbc(), safepasswd, config->iv);
+ encoded = s_malloc(sizeof(DAT));
+ encoded->data = s_malloc(8 + size); //Blowfish can grow 64 bits
+
+- if (EVP_EncryptUpdate(&ctx, encoded->data, &olen, unenc, size) != 1) {
++ if (EVP_EncryptUpdate(ctx, encoded->data, &olen, unenc, size) != 1) {
++ EVP_CIPHER_CTX_free(ctx);
+ die_cryptoerr("error in encrypt update\n");
+ }
+
+- if (EVP_EncryptFinal(&ctx, encoded->data + olen, &tlen) != 1) {
++ if (EVP_EncryptFinal(ctx, encoded->data + olen, &tlen) != 1) {
++ EVP_CIPHER_CTX_free(ctx);
+ die_cryptoerr("error in encrypt final\n");
+ }
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+ encoded->size = olen + tlen;
+ if (encoded->size > 8 + size) {
+ die_cryptoerr
+@@ -123,20 +128,24 @@ DAT *lfsdecrypt(DAT * data)
+ decrypted->data = s_malloc(data->size);
+ safepasswd = safepassword();
+
+- EVP_CIPHER_CTX ctx;
+- EVP_CIPHER_CTX_init(&ctx);
+- EVP_DecryptInit(&ctx, EVP_bf_cbc(), safepasswd, config->iv);
++ EVP_CIPHER_CTX *ctx;
++ ctx = EVP_CIPHER_CTX_new();
++ if (ctx == NULL)
++ die_cryptoerr("can't allocate memory for new ctx");
++ EVP_DecryptInit(ctx, EVP_bf_cbc(), safepasswd, config->iv);
+
+ if (EVP_DecryptUpdate
+- (&ctx, decrypted->data, &olen, data->data, data->size) != 1) {
++ (ctx, decrypted->data, &olen, data->data, data->size) != 1) {
++ EVP_CIPHER_CTX_free(ctx);
+ die_cryptoerr("Unexpected fatal error while decrypting.\n");
+ }
+
+- if (EVP_DecryptFinal(&ctx, decrypted->data + olen, &tlen) != 1) {
++ if (EVP_DecryptFinal(ctx, decrypted->data + olen, &tlen) != 1) {
++ EVP_CIPHER_CTX_free(ctx);
+ die_cryptoerr("Unexpected fatal error in decrypt final.\n");
+ }
+ olen += tlen;
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_free(ctx);
+ decrypted->size = olen;
+ s_free(safepasswd);
+ pthread_mutex_unlock(&crypto_mutex);