fix behavior when getrandom syscall is not present (#1542453)
This commit is contained in:
		
							parent
							
								
									ff389a60e8
								
							
						
					
					
						commit
						e4efa24217
					
				| @ -1,6 +1,6 @@ | |||||||
| diff -up libgcrypt-1.8.1/random/random-csprng.c.getrandom libgcrypt-1.8.1/random/random-csprng.c
 | diff -up libgcrypt-1.8.1/random/random-csprng.c.getrandom libgcrypt-1.8.1/random/random-csprng.c
 | ||||||
| --- libgcrypt-1.8.1/random/random-csprng.c.getrandom	2017-08-27 09:05:36.000000000 +0200
 | --- libgcrypt-1.8.1/random/random-csprng.c.getrandom	2017-08-27 09:05:36.000000000 +0200
 | ||||||
| +++ libgcrypt-1.8.1/random/random-csprng.c	2017-12-05 11:49:06.609801947 +0100
 | +++ libgcrypt-1.8.1/random/random-csprng.c	2017-12-06 09:04:27.824175303 +0100
 | ||||||
| @@ -55,6 +55,10 @@
 | @@ -55,6 +55,10 @@
 | ||||||
|  #ifdef __MINGW32__ |  #ifdef __MINGW32__ | ||||||
|  #include <process.h> |  #include <process.h> | ||||||
| @ -37,7 +37,7 @@ diff -up libgcrypt-1.8.1/random/random-csprng.c.getrandom libgcrypt-1.8.1/random | |||||||
|      { |      { | ||||||
| diff -up libgcrypt-1.8.1/random/rndlinux.c.getrandom libgcrypt-1.8.1/random/rndlinux.c
 | diff -up libgcrypt-1.8.1/random/rndlinux.c.getrandom libgcrypt-1.8.1/random/rndlinux.c
 | ||||||
| --- libgcrypt-1.8.1/random/rndlinux.c.getrandom	2017-09-05 14:34:28.003872675 +0200
 | --- libgcrypt-1.8.1/random/rndlinux.c.getrandom	2017-09-05 14:34:28.003872675 +0200
 | ||||||
| +++ libgcrypt-1.8.1/random/rndlinux.c	2017-12-04 09:48:38.704845838 +0100
 | +++ libgcrypt-1.8.1/random/rndlinux.c	2018-02-06 16:31:56.047481806 +0100
 | ||||||
| @@ -35,6 +35,7 @@
 | @@ -35,6 +35,7 @@
 | ||||||
|  #include <poll.h> |  #include <poll.h> | ||||||
|  #if defined(__linux__) && defined(HAVE_SYSCALL) |  #if defined(__linux__) && defined(HAVE_SYSCALL) | ||||||
| @ -63,6 +63,15 @@ diff -up libgcrypt-1.8.1/random/rndlinux.c.getrandom libgcrypt-1.8.1/random/rndl | |||||||
|            fd_urandom = open_device (NAME_OF_DEV_URANDOM, (ever_opened & 2)); |            fd_urandom = open_device (NAME_OF_DEV_URANDOM, (ever_opened & 2)); | ||||||
|            ever_opened |= 2; |            ever_opened |= 2; | ||||||
|          } |          } | ||||||
|  | @@ -230,7 +241,7 @@ _gcry_rndlinux_gather_random (void (*add
 | ||||||
|  |         * syscall and not a new device and thus we are not able to use | ||||||
|  |         * select(2) to have a timeout. */ | ||||||
|  |  #if defined(__linux__) && defined(HAVE_SYSCALL) && defined(__NR_getrandom) | ||||||
|  | -      if (fd == fd_urandom)
 | ||||||
|  | +      if (fd == -1)
 | ||||||
|  |          { | ||||||
|  |            long ret; | ||||||
|  |            size_t nbytes; | ||||||
| @@ -246,9 +257,7 @@ _gcry_rndlinux_gather_random (void (*add
 | @@ -246,9 +257,7 @@ _gcry_rndlinux_gather_random (void (*add
 | ||||||
|                _gcry_post_syscall (); |                _gcry_post_syscall (); | ||||||
|              } |              } | ||||||
|  | |||||||
| @ -1,6 +1,6 @@ | |||||||
| Name: libgcrypt | Name: libgcrypt | ||||||
| Version: 1.8.2 | Version: 1.8.2 | ||||||
| Release: 1%{?dist} | Release: 2%{?dist} | ||||||
| URL: http://www.gnupg.org/ | URL: http://www.gnupg.org/ | ||||||
| Source0: libgcrypt-%{version}-hobbled.tar.xz | Source0: libgcrypt-%{version}-hobbled.tar.xz | ||||||
| # The original libgcrypt sources now contain potentially patented ECC | # The original libgcrypt sources now contain potentially patented ECC | ||||||
| @ -192,6 +192,9 @@ exit 0 | |||||||
| %license COPYING | %license COPYING | ||||||
| 
 | 
 | ||||||
| %changelog | %changelog | ||||||
|  | * Tue Feb  6 2018 Tomáš Mráz <tmraz@redhat.com> 1.8.2-2 | ||||||
|  | - fix behavior when getrandom syscall is not present (#1542453) | ||||||
|  | 
 | ||||||
| * Thu Dec 21 2017 Tomáš Mráz <tmraz@redhat.com> 1.8.2-1 | * Thu Dec 21 2017 Tomáš Mráz <tmraz@redhat.com> 1.8.2-1 | ||||||
| - new upstream version 1.8.2 | - new upstream version 1.8.2 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user