Hello community, here is the log from the commit of package dd_rescue for openSUSE:Factory checked in at 2018-05-16 11:21:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dd_rescue (Old) and /work/SRC/openSUSE:Factory/.dd_rescue.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dd_rescue" Wed May 16 11:21:20 2018 rev:39 rq:606793 version:1.99.8 Changes: -------- --- /work/SRC/openSUSE:Factory/dd_rescue/dd_rescue.changes 2018-04-19 15:21:04.735535099 +0200 +++ /work/SRC/openSUSE:Factory/.dd_rescue.new/dd_rescue.changes 2018-05-16 11:21:22.920386554 +0200 @@ -1,0 +2,9 @@ +Sat May 12 12:06:29 CEST 2018 - [email protected] + +- ddr_1998-sysrandom.diff: Use getrandom() decl from sys/random.h. +- ddr_1998-testhole.diff: Ensure we have a hole before testing hole + encryption (fixes bsc#1092758). +- ddr_1998-ossl11-warn.diff: Avoid warn from memcpy to openssl-1.1 + to EVPCTX* internals. + +------------------------------------------------------------------- New: ---- ddr_1998-ossl11-warn.diff ddr_1998-sysrandom.diff ddr_1998-testhole.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dd_rescue.spec ++++++ --- /var/tmp/diff_new_pack.uHvk0x/_old 2018-05-16 11:21:25.408296209 +0200 +++ /var/tmp/diff_new_pack.uHvk0x/_new 2018-05-16 11:21:25.412296063 +0200 @@ -20,7 +20,7 @@ Version: 1.99.8 Release: 0 Summary: Data copying in the presence of I/O Errors -License: GPL-2.0 or GPL-3.0 +License: GPL-2.0-only OR GPL-3.0-only Group: System/Base Url: http://www.garloff.de/kurt/linux/ddrescue/ Source0: http://garloff.de/kurt/linux/ddrescue/%{name}-%{version}.tar.bz2 @@ -29,6 +29,9 @@ Source99: %{name}.changes Patch1: ddr_1998-alg-caseindep.diff Patch2: ddr_1998-check-nofail-noxattr.diff +Patch3: ddr_1998-sysrandom.diff +Patch4: ddr_1998-testhole.diff +Patch5: ddr_1998-ossl11-warn.diff BuildRequires: autoconf BuildRequires: libattr-devel %if 0%{?is_opensuse} @@ -117,6 +120,9 @@ %setup -q %patch1 -p1 %patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 # Remove build time references so build-compare can do its work FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{SOURCE99} '+%%H:%%M') FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{SOURCE99} '+%%b %%e %%Y') @@ -137,7 +143,7 @@ ln -sf %{_bindir}/dd_rescue %{buildroot}/bin %check -make %{?_smp_mflags} check +make %{?_smp_mflags} RPM_OPT_FLAGS="%{optflags}" check %files %defattr(-,root,root,-) ++++++ ddr_1998-ossl11-warn.diff ++++++ commit fb27151be814b0bfbe05f81754f754c7ff8b14d7 Author: Kurt Garloff <[email protected]> Date: Sat May 12 09:57:23 2018 +0000 Avoid compiler warnings. diff --git a/aes_ossl11.c b/aes_ossl11.c index b10f157..66cfbd4 100644 --- a/aes_ossl11.c +++ b/aes_ossl11.c @@ -101,8 +101,8 @@ int AES_OSSL_##BITCHAIN##_Encrypt(const unsigned char* ctx, unsigned int rounds, EVP_CIPHER_CTX **evpctx = (EVP_CIPHER_CTX**)ctx; \ EVP_CIPHER_CTX_set_padding(evpctx[0], DOPAD? pad: 0); \ if (IV) { \ - memcpy(EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ } \ if (DOPAD && !pad && (len&15)) { \ ores = EVP_EncryptUpdate(evpctx[0], out, &olen, in, len-(len&15)); \ @@ -143,8 +143,8 @@ int AES_OSSL_##BITCHAIN##_Decrypt(const unsigned char* ctx, unsigned int rounds, EVP_CIPHER_CTX **evpctx = (EVP_CIPHER_CTX**)ctx; \ EVP_CIPHER_CTX_set_padding(evpctx[0], DOPAD && pad != PAD_ASNEEDED?pad:0); \ if (IV) { \ - memcpy(EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ } \ if (DOPAD && pad == PAD_ASNEEDED) { \ int olen1; \ @@ -310,10 +310,10 @@ int AES_OSSL_##BITCHAIN##_EncryptX2(const unsigned char* ctx, unsigned int roun EVP_CIPHER_CTX_set_padding(evpctx[0], pad); \ EVP_CIPHER_CTX_set_padding(evpctx[1], 0); \ if (IV) { \ - memcpy(EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_original_iv(evpctx[1]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_iv_noconst(evpctx[1]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_original_iv(evpctx[1]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_iv_noconst(evpctx[1]), iv, 16); \ } \ if (!pad && (len&15)) { \ ores = EVP_EncryptUpdate(evpctx[0], out, &olen, in, len-(len&15)); \ @@ -353,10 +353,10 @@ int AES_OSSL_##BITCHAIN##_DecryptX2(const unsigned char* ctx, unsigned int roun EVP_CIPHER_CTX_set_padding(evpctx[1], 0); \ EVP_CIPHER_CTX_set_padding(evpctx[0], pad==PAD_ASNEEDED? 0: pad); \ if (IV) { \ - memcpy(EVP_CIPHER_CTX_original_iv(evpctx[1]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_iv_noconst(evpctx[1]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ - memcpy(EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_original_iv(evpctx[1]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_iv_noconst(evpctx[1]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_original_iv(evpctx[0]), iv, 16); \ + memcpy((void*)EVP_CIPHER_CTX_iv_noconst(evpctx[0]), iv, 16); \ } \ ores = EVP_DecryptUpdate(evpctx[1], out, &olen, in, rlen); \ assert(ores); \ ++++++ ddr_1998-sysrandom.diff ++++++ commit f31f00876bd7a1b6a64580138d5208f01dfa81ab Author: Kurt Garloff <[email protected]> Date: Sat May 12 09:34:22 2018 +0000 Use sys/random.h for getrandom() decl if present. diff --git a/configure.in b/configure.in index af1ef75..d9b6950 100644 --- a/configure.in +++ b/configure.in @@ -6,7 +6,7 @@ AC_C_INLINE AC_HEADER_STDC #AC_PROG_INSTALL #CFLAGS="$CFLAGS -DHAVE_CONFIG_H" -AC_CHECK_HEADERS([fallocate.h dlfcn.h unistd.h attr/xattr.h sys/acl.h sys/ioctl.h endian.h linux/fs.h linux/fiemap.h stdint.h lzo/lzo1x.h openssl/evp.h linux/random.h malloc.h sched.h sys/statvfs.h]) +AC_CHECK_HEADERS([fallocate.h dlfcn.h unistd.h attr/xattr.h sys/acl.h sys/ioctl.h endian.h linux/fs.h linux/fiemap.h stdint.h lzo/lzo1x.h openssl/evp.h linux/random.h sys/random.h malloc.h sched.h sys/statvfs.h]) AC_CHECK_FUNCS([ffs ffsl basename fallocate64 splice getopt_long open64 pread pread64 lseek64 stat64 posix_fadvise posix_fadvise64 __builtin_prefetch htobe64 feof_unlocked getline getentropy getrandom posix_memalign valloc sched_yield fstatvfs __builtin_cpu_supports]) AC_CHECK_LIB(dl,dlsym) AC_CHECK_LIB(fallocate,linux_fallocate64) diff --git a/random.c b/random.c index e558bed..9b2304c 100644 --- a/random.c +++ b/random.c @@ -22,6 +22,9 @@ typedef unsigned int __u32; #ifdef HAVE_LINUX_RANDOM_H #include <linux/random.h> #endif +#ifdef HAVE_SYS_RANDOM_H +#include <sys/random.h> +#endif static void msleep(unsigned int msecs) { ++++++ ddr_1998-testhole.diff ++++++ commit 7f2ff6434586083747bc5d046e0207886025e684 Author: Kurt Garloff <[email protected]> Date: Sat May 12 09:54:45 2018 +0000 Fix test case by ensuring there is a hole ... diff --git a/test_crypt.sh b/test_crypt.sh index 47f1fc9..62cf853 100755 --- a/test_crypt.sh +++ b/test_crypt.sh @@ -52,13 +52,20 @@ rm dd_rescue2 # Holes (all), skiphole echo "*** Holes ***" +# Produce file that consists of dd_rescue + hole + dd_rescue ./dd_rescue -qpt dd_rescue dd_rescue3 ./dd_rescue -qS 512k dd_rescue dd_rescue3 +# Ensure there is a hole even if dd_rescue is long +./dd_rescue -qS 384k -m 128k /dev/zero dd_rescue3 +# Test without and with skiphole enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen "" "" "-qpt" enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen skiphole "" "-qpt" +# Store 384k-512k in cmp3 ./dd_rescue -qt -s 384k -m 128k -S 0 dd_rescue3.cmp dd_rescue3.cmp3 +# Should be 128k of zeroes ./dd_rescue -qm 128k /dev/zero dd_rescue3.cmp2 cmp dd_rescue3.cmp2 dd_rescue3.cmp3 || exit 4 +# Repeat test with reverse enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen "" "" "-qptr" enc_dec_compare_keys dd_rescue3 AES192-CTR keygen:ivgen skiphole "" "-qptr" ./dd_rescue -qt -s 384k -m 128k -S 0 dd_rescue3.cmp dd_rescue3.cmp3
