X-Git-Url: https://git.distorted.org.uk/~mdw/termux-packages/blobdiff_plain/a4b036426c15b16be1f2dc79b3e7896af210c914..a0274f33cf7ea47db172a06181b241cbe4625188:/ndk_patches/stdio.h.patch diff --git a/ndk_patches/stdio.h.patch b/ndk_patches/stdio.h.patch index b7cb7fc4..f3d871ed 100644 --- a/ndk_patches/stdio.h.patch +++ b/ndk_patches/stdio.h.patch @@ -6,8 +6,8 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl #include +#include /* For strcpy(3) used by ctermid() */ -+#include /* For O_RDWR and other O_* constants */ -+#include /* For random() */ ++#include /* For O_RDWR and other O_* constants */ ++#include /* For arc4random() */ + #define __need_NULL #include @@ -37,8 +37,8 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl +#define __sferror(p) (((p)->_flags & __SERR) != 0) + +/* Used by perl, fish, and others */ -+static char* ctermid(char* s) { -+ if (s == 0) return "/dev/tty"; ++static __inline__ char* ctermid(char* s) { ++ if (s == 0) return (char*) "/dev/tty"; + strcpy(s, "/dev/tty"); + return s; +} @@ -46,20 +46,23 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl #if defined(__BIONIC_FORTIFY) __BEGIN_DECLS -@@ -462,4 +474,26 @@ +@@ -462,4 +474,29 @@ #endif /* defined(__BIONIC_FORTIFY) */ +__BEGIN_DECLS + -+static FILE* tmpfile() { ++extern int open(const char*, int, ...); ++extern pid_t getpid(); ++extern int unlink(const char*); ++static __inline__ FILE* tmpfile() { + int p = getpid(); + char* path; + int i; + for (i = 0; i < 100; i++) { -+ long int r = random(); -+ if (asprintf(&path, "@TERMUX_PREFIX@/tmp/tmpfile.%d-%l", p, r) == -1) return NULL; -+ int fd = open(path, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE); ++ unsigned int r = arc4random(); ++ if (asprintf(&path, "@TERMUX_PREFIX@/tmp/tmpfile.%d-%u", p, r) == -1) return NULL; ++ int fd = open(path, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE, 0600); + free(path); + if (fd >= 0) { + FILE* result = fdopen(fd, "w+");