Hello community, here is the log from the commit of package mbedtls for openSUSE:Factory checked in at 2015-04-02 16:04:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mbedtls (Old) and /work/SRC/openSUSE:Factory/.mbedtls.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mbedtls" Changes: -------- --- /work/SRC/openSUSE:Factory/mbedtls/mbedtls.changes 2015-03-30 19:33:02.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.mbedtls.new/mbedtls.changes 2015-04-02 16:04:22.000000000 +0200 @@ -1,0 +2,6 @@ +Wed Apr 1 11:05:55 UTC 2015 - sch...@suse.de + +- getrandom-syscall-fallback.patch: Fall back to /dev/urandom if getrandom + syscall is not implemented. + +------------------------------------------------------------------- New: ---- getrandom-syscall-fallback.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mbedtls.spec ++++++ --- /var/tmp/diff_new_pack.9Xhj0c/_old 2015-04-02 16:04:23.000000000 +0200 +++ /var/tmp/diff_new_pack.9Xhj0c/_new 2015-04-02 16:04:23.000000000 +0200 @@ -25,6 +25,7 @@ Group: Development/Libraries/C and C++ Url: https://tls.mbed.org Source: https://tls.mbed.org/download/%{name}-%{version}-gpl.tgz +Patch: getrandom-syscall-fallback.patch BuildRequires: cmake BuildRequires: pkg-config BuildRequires: zlib-devel @@ -54,6 +55,7 @@ %prep %setup -q +%patch -p1 sed -i 's|//\(#define POLARSSL_THREADING_C\)|\1|' include/polarssl/config.h sed -i 's|//\(#define POLARSSL_THREADING_PTHREAD\)|\1|' include/polarssl/config.h ++++++ getrandom-syscall-fallback.patch ++++++ Index: mbedtls-1.3.10/library/entropy_poll.c =================================================================== --- mbedtls-1.3.10.orig/library/entropy_poll.c +++ mbedtls-1.3.10/library/entropy_poll.c @@ -81,40 +81,35 @@ int platform_entropy_poll( void *data, u #include <sys/syscall.h> #if defined(SYS_getrandom) #define HAVE_GETRANDOM -static int getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) +static ssize_t getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) { return( syscall( SYS_getrandom, buf, buflen, flags ) ); } #endif /* SYS_getrandom */ #endif /* __linux__ */ -#if defined(HAVE_GETRANDOM) - +#include <stdio.h> #include <errno.h> int platform_entropy_poll( void *data, unsigned char *output, size_t len, size_t *olen ) { - int ret; + FILE *file; + size_t ret; ((void) data); - if( ( ret = getrandom_wrapper( output, len, 0 ) ) < 0 ) - return( POLARSSL_ERR_ENTROPY_SOURCE_FAILED ); - - *olen = ret; - return( 0 ); -} - -#else /* HAVE_GETRANDOM */ +#if defined(HAVE_GETRANDOM) + ssize_t sysret; -#include <stdio.h> + if( ( sysret = getrandom_wrapper( output, len, 0 ) ) >= 0 ) + { + *olen = sysret; + return( 0 ); + } + if (sysret < 0 && errno != ENOSYS) + return( POLARSSL_ERR_ENTROPY_SOURCE_FAILED ); -int platform_entropy_poll( void *data, - unsigned char *output, size_t len, size_t *olen ) -{ - FILE *file; - size_t ret; - ((void) data); +#endif /* HAVE_GETRANDOM */ *olen = 0; @@ -134,7 +129,6 @@ int platform_entropy_poll( void *data, return( 0 ); } -#endif /* HAVE_GETRANDOM */ #endif /* _WIN32 && !EFIX64 && !EFI32 */ #endif /* !POLARSSL_NO_PLATFORM_ENTROPY */