diff --git a/openbsd-netcat/openbsd-netcat.patch b/openbsd-netcat/openbsd-netcat.patch index 29d3d2bf..eef14b3d 100644 --- a/openbsd-netcat/openbsd-netcat.patch +++ b/openbsd-netcat/openbsd-netcat.patch @@ -602,8 +602,8 @@ diff -uprN netcat-openbsd-1.130.bk/explicit_bzero.c netcat-openbsd-1.130/explici +} diff -uprN netcat-openbsd-1.130.bk/getentropy_hurd.c netcat-openbsd-1.130/getentropy_hurd.c --- netcat-openbsd-1.130.bk/getentropy_hurd.c 1970-01-01 08:00:00.000000000 +0800 -+++ netcat-openbsd-1.130/getentropy_hurd.c 2017-04-14 00:32:41.373554700 +0800 -@@ -0,0 +1,444 @@ ++++ netcat-openbsd-1.130/getentropy_hurd.c 2017-04-14 00:37:54.398795800 +0800 +@@ -0,0 +1,487 @@ +/* $OpenBSD: getentropy_linux.c,v 1.40 2015/08/25 17:26:43 deraadt Exp $ */ + +/* @@ -670,6 +670,49 @@ diff -uprN netcat-openbsd-1.130.bk/getentropy_hurd.c netcat-openbsd-1.130/getent +#define HD(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (x))) +#define HF(x) (SHA512_Update(&ctx, (char *)&(x), sizeof (void*))) + ++#if __WORDSIZE == 64 ++# define ElfW(type) Elf64_##type ++#else ++# define ElfW(type) Elf32_##type ++#endif ++ ++struct dl_phdr_info ++{ ++ ElfW(Addr) dlpi_addr; ++ const char *dlpi_name; ++ const ElfW(Phdr) *dlpi_phdr; ++ ElfW(Half) dlpi_phnum; ++}; ++ ++ ++/* dl_support.c defines these and initializes them early on. */ ++extern ElfW(Phdr) *_dl_phdr; ++extern size_t _dl_phnum; ++ ++ ++int dl_iterate_phdr(int (*callback) (struct dl_phdr_info *info, size_t size, void *data), ++ void *data); ++int dl_iterate_phdr(int (*callback) (struct dl_phdr_info *info, size_t size, void *data), ++ void *data) ++{ ++ int ret; ++ struct dl_phdr_info info; ++ ++ if (_dl_phnum != 0) ++ { ++ /* This entry describes this statically-linked program itself. */ ++ info.dlpi_addr = 0; ++ info.dlpi_name = ""; ++ info.dlpi_phdr = _dl_phdr; ++ info.dlpi_phnum = _dl_phnum; ++ ret = (*callback) (&info, sizeof(info), data); ++ if (ret != 0) ++ return ret; ++ } ++ ++ return 0; ++} ++ +int getentropy(void *buf, size_t len); + +static int gotdata(char *buf, size_t len);