crypto-openssl: use getrandom syscall 54/35954/2
authorGuillaume Solignac <[email protected]>
Wed, 13 Apr 2022 13:52:05 +0000 (15:52 +0200)
committerBeno�t Ganne <[email protected]>
Wed, 13 Apr 2022 16:50:03 +0000 (16:50 +0000)
The sys/random.h header, which provides the getrandom syscall wrapper,
was only added in glibc2.25. To make it compatible with older version,
we can directly call the syscall.

Type: improvement
Signed-off-by: Guillaume Solignac <[email protected]>
Change-Id: I93c5f8a49c0323511a4e34273f0b3c0e24663bfd

src/plugins/crypto_openssl/main.c

index 6843880..c0f7ee2 100644 (file)
@@ -15,7 +15,7 @@
  *------------------------------------------------------------------
  */
 
-#include <sys/random.h>
+#include <sys/syscall.h>
 
 #include <openssl/evp.h>
 #include <openssl/hmac.h>
@@ -478,7 +478,7 @@ crypto_openssl_init (vlib_main_t * vm)
   openssl_per_thread_data_t *ptd;
   u8 seed[32];
 
-  if (getrandom (&seed, sizeof (seed), 0) != sizeof (seed))
+  if (syscall (SYS_getrandom, &seed, sizeof (seed), 0) != sizeof (seed))
     return clib_error_return_unix (0, "getrandom() failed");
 
   RAND_seed (seed, sizeof (seed));