Skip to content

Commit

Permalink
deps: openssl: cherry-pick 4dcb150ea30f
Browse files Browse the repository at this point in the history
OpenSSL 1.1.1d does not ship with getrandom syscall being
predefined on all architectures. So when NodeJS is run with glibc
prior to 2.25, where getentropy is unavailable, and the getrandom
syscall is unknown, it will fail. PPC64LE or s390 are affected
by lack of this definition.

Original commit message.

    commit 4dcb150ea30f9bbfa7946e6b39c30a86aca5ed02
    Author: Kurt Roeckx <kurt@roeckx.be>
    Date:   Sat Sep 28 14:59:32 2019 +0200

      Add defines for __NR_getrandom for all Linux architectures

      Fixes: openssl/openssl#10015

      Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
      GH: openssl/openssl#10044

Fixes: #31671
PR-URL: #32002
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
  • Loading branch information
AdamMajer authored and BethGriggs committed Mar 2, 2020
1 parent f235eea commit 47046aa
Showing 1 changed file with 49 additions and 3 deletions.
52 changes: 49 additions & 3 deletions deps/openssl/openssl/crypto/rand/rand_unix.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,12 +282,58 @@ static ssize_t sysctl_random(char *buf, size_t buflen)
# if defined(OPENSSL_RAND_SEED_GETRANDOM)

# if defined(__linux) && !defined(__NR_getrandom)
# if defined(__arm__) && defined(__NR_SYSCALL_BASE)
# if defined(__arm__)
# define __NR_getrandom (__NR_SYSCALL_BASE+384)
# elif defined(__i386__)
# define __NR_getrandom 355
# elif defined(__x86_64__) && !defined(__ILP32__)
# define __NR_getrandom 318
# elif defined(__x86_64__)
# if defined(__ILP32__)
# define __NR_getrandom (__X32_SYSCALL_BIT + 318)
# else
# define __NR_getrandom 318
# endif
# elif defined(__xtensa__)
# define __NR_getrandom 338
# elif defined(__s390__) || defined(__s390x__)
# define __NR_getrandom 349
# elif defined(__bfin__)
# define __NR_getrandom 389
# elif defined(__powerpc__)
# define __NR_getrandom 359
# elif defined(__mips__) || defined(__mips64)
# if _MIPS_SIM == _MIPS_SIM_ABI32
# define __NR_getrandom (__NR_Linux + 353)
# elif _MIPS_SIM == _MIPS_SIM_ABI64
# define __NR_getrandom (__NR_Linux + 313)
# elif _MIPS_SIM == _MIPS_SIM_NABI32
# define __NR_getrandom (__NR_Linux + 317)
# endif
# elif defined(__hppa__)
# define __NR_getrandom (__NR_Linux + 339)
# elif defined(__sparc__)
# define __NR_getrandom 347
# elif defined(__ia64__)
# define __NR_getrandom 1339
# elif defined(__alpha__)
# define __NR_getrandom 511
# elif defined(__sh__)
# if defined(__SH5__)
# define __NR_getrandom 373
# else
# define __NR_getrandom 384
# endif
# elif defined(__avr32__)
# define __NR_getrandom 317
# elif defined(__microblaze__)
# define __NR_getrandom 385
# elif defined(__m68k__)
# define __NR_getrandom 352
# elif defined(__cris__)
# define __NR_getrandom 356
# elif defined(__aarch64__)
# define __NR_getrandom 278
# else /* generic */
# define __NR_getrandom 278
# endif
# endif

Expand Down

0 comments on commit 47046aa

Please sign in to comment.