diff options
-rw-r--r-- | dump.spec | 16 | ||||
-rw-r--r-- | openssl.patch | 82 |
2 files changed, 6 insertions, 92 deletions
@@ -8,13 +8,12 @@ Summary(ru.UTF-8): Программы для резервного копиров Summary(tr.UTF-8): dump/restore yedekleme sistemi Summary(uk.UTF-8): Програми для резервного копіювання та відновлення файлових систем Name: dump -Version: 0.4b46 -Release: 2 +Version: 0.4b47 +Release: 1 License: BSD Group: Applications/System Source0: http://downloads.sourceforge.net/dump/%{name}-%{version}.tar.gz -# Source0-md5: 4c463f797e7e8a1112fabf5cbf8e1855 -Patch0: openssl.patch +# Source0-md5: 620f02f1a5c5e7954a2948f0331824d2 URL: http://dump.sourceforge.net/ BuildRequires: autoconf >= 2.57 BuildRequires: automake @@ -153,7 +152,6 @@ ermt to wersja programu rmt z szyfrowaniem. %prep %setup -q -%patch0 -p1 %build %{__aclocal} @@ -178,16 +176,14 @@ MYGRP=`id -rg` %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_sbindir},%{_mandir}/man8,%{_prefix}%{_sbindir}} +install -d $RPM_BUILD_ROOT%{_sysconfdir} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -install rmt/ermt $RPM_BUILD_ROOT%{_prefix}/sbin - > $RPM_BUILD_ROOT%{_sysconfdir}/dumpdates -ln -sf %{_sbindir}/rmt $RPM_BUILD_ROOT%{_sysconfdir}/rmt +ln -sfr $RPM_BUILD_ROOT{%{_sbindir},%{_sysconfdir}}/rmt %clean rm -rf $RPM_BUILD_ROOT @@ -213,4 +209,4 @@ rm -rf $RPM_BUILD_ROOT %files -n ermt %defattr(644,root,root,755) -%attr(755,root,root) %{_prefix}/sbin/ermt +%attr(755,root,root) %{_sbindir}/ermt diff --git a/openssl.patch b/openssl.patch deleted file mode 100644 index dff5b4c..0000000 --- a/openssl.patch +++ /dev/null @@ -1,82 +0,0 @@ -diff -urN dump-0.4b46.org/common/transformation_ssl.c dump-0.4b46/common/transformation_ssl.c ---- dump-0.4b46.org/common/transformation_ssl.c 2016-06-08 07:01:45.000000000 +0200 -+++ dump-0.4b46/common/transformation_ssl.c 2018-09-20 12:09:51.499235266 +0200 -@@ -515,7 +515,7 @@ - //EVP_CIPHER_CTX_rand_key(ctx, t->state.ssl.key); - //EVP_CIPHER_CTX_cleanup(ctx); - //EVP_CIPHER_CTX_free(ctx); -- RAND_bytes(t->state.ssl.key, t->state.ssl.cipher->key_len); -+ RAND_bytes(t->state.ssl.key, EVP_CIPHER_key_length(t->state.ssl.cipher)); - } else { - // how do we get keys? - } -diff -urN dump-0.4b46.org/rmt/cipher.c dump-0.4b46/rmt/cipher.c ---- dump-0.4b46.org/rmt/cipher.c 2016-06-07 20:09:12.000000000 +0200 -+++ dump-0.4b46/rmt/cipher.c 2018-09-20 12:17:23.936324758 +0200 -@@ -23,7 +23,7 @@ - char * - cipher(char *buf, int buflen, int do_encrypt) - { -- static EVP_CIPHER_CTX ctx; -+ static EVP_CIPHER_CTX *ctx; - static char *out = NULL; /* return value, grown as necessary */ - static int outlen = 0; - static int init = 0, which, blocksize; -@@ -71,41 +71,52 @@ - } - EVP_BytesToKey(cipher, EVP_md5(), NULL, - buf, strlen(buf), 1, key, iv); -- EVP_CIPHER_CTX_init(&ctx); -- EVP_CipherInit_ex(&ctx, cipher, NULL, key, iv, do_encrypt); -- EVP_CIPHER_CTX_set_padding(&ctx, 0); // -nopad -+ ctx = EVP_CIPHER_CTX_new(); -+ if (ctx == NULL) { -+ syslog(LOG_ERR, "Failed to allocate crypto context"); -+ errno = EINVAL; -+ return NULL; -+ } -+ EVP_CIPHER_CTX_init(ctx); -+ EVP_CipherInit_ex(ctx, cipher, NULL, key, iv, do_encrypt); -+ EVP_CIPHER_CTX_set_padding(ctx, 0); // -nopad - OPENSSL_cleanse(buf, sizeof buf); - OPENSSL_cleanse(key, sizeof key); - OPENSSL_cleanse(iv, sizeof iv); -- blocksize = EVP_CIPHER_CTX_block_size(&ctx); -+ blocksize = EVP_CIPHER_CTX_block_size(ctx); - which = do_encrypt; - init = 1; - } - if (which != do_encrypt) { - syslog(LOG_ERR, "Cannot switch modes"); - errno = EINVAL; -+ EVP_CIPHER_CTX_free(ctx); - return NULL; - } - if ((buflen % blocksize) != 0) { - syslog(LOG_ERR, "Buffer size is not a multiple of cipher block size"); - errno = EINVAL; -+ EVP_CIPHER_CTX_free(ctx); - return NULL; - } - if (outlen < buflen+blocksize) { - outlen = (buflen+blocksize) * 2; - out = realloc(out, outlen); - } -- if (!EVP_CipherUpdate(&ctx, out, &n, buf, buflen)) { -+ if (!EVP_CipherUpdate(ctx, out, &n, buf, buflen)) { - syslog(LOG_ERR, "EVP_CipherUpdate failed"); - errno = EINVAL; -+ EVP_CIPHER_CTX_free(ctx); - return NULL; - } - if (n != buflen) { - syslog(LOG_ERR, "EVP_CipherUpdate: %d != %d", n, buflen); - errno = EINVAL; -+ EVP_CIPHER_CTX_free(ctx); - return NULL; - } - // assert(ctx->buf_len == 0); -+ EVP_CIPHER_CTX_free(ctx); - return out; - } - |