diff options
Diffstat (limited to 'abs/extra/emacs/glibc_gets.patch')
-rw-r--r-- | abs/extra/emacs/glibc_gets.patch | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/abs/extra/emacs/glibc_gets.patch b/abs/extra/emacs/glibc_gets.patch new file mode 100644 index 0000000..26b71f6 --- /dev/null +++ b/abs/extra/emacs/glibc_gets.patch @@ -0,0 +1,90 @@ +--- emacs-24.1-orig/lib/gnulib.mk ++++ emacs-24.1/lib/gnulib.mk +@@ -599,7 +624,6 @@ + -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ + -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ + -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ +- -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ + -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ + -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ +--- emacs-24.1-orig/lib/stdio.in.h ++++ emacs-24.1/lib/stdio.in.h +@@ -699,22 +699,11 @@ + # endif + #endif + +-#if @GNULIB_GETS@ +-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ +-# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +-# undef gets +-# define gets rpl_gets +-# endif +-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1))); +-_GL_CXXALIAS_RPL (gets, char *, (char *s)); +-# else +-_GL_CXXALIAS_SYS (gets, char *, (char *s)); +-# undef gets +-# endif +-_GL_CXXALIASWARN (gets); + /* It is very rare that the developer ever has full control of stdin, +- so any use of gets warrants an unconditional warning. Assume it is +- always declared, since it is required by C89. */ ++ so any use of gets warrants an unconditional warning; besides, C11 ++ removed it. */ ++#undef gets ++#if HAVE_RAW_DECL_GETS + _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); + #endif + +@@ -1054,9 +1043,9 @@ + # endif + #endif + +-/* Some people would argue that sprintf should be handled like gets +- (for example, OpenBSD issues a link warning for both functions), +- since both can cause security holes due to buffer overruns. ++/* Some people would argue that all sprintf uses should be warned about ++ (for example, OpenBSD issues a link warning for it), ++ since it can cause security holes due to buffer overruns. + However, we believe that sprintf can be used safely, and is more + efficient than snprintf in those safe cases; and as proof of our + belief, we use sprintf in several gnulib modules. So this header +--- emacs-24.1-orig/m4/stdio_h.m4 ++++ emacs-24.1/m4/stdio_h.m4 +@@ -1,4 +1,4 @@ +-# stdio_h.m4 serial 40 ++# stdio_h.m4 serial 41 + dnl Copyright (C) 2007-2011 Free Software Foundation, Inc. + dnl This file is free software; the Free Software Foundation + dnl gives unlimited permission to copy and/or distribute it, +@@ -18,7 +18,6 @@ + GNULIB_GETC=1 + GNULIB_GETCHAR=1 + GNULIB_FGETS=1 +- GNULIB_GETS=1 + GNULIB_FREAD=1 + dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" + dnl "expected source file, required through AC_LIBSOURCES, not found". It is +@@ -72,10 +71,10 @@ + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use, and which is not +- dnl guaranteed by C89. ++ dnl guaranteed by both C89 and C11. + gl_WARN_ON_USE_PREPARE([[#include <stdio.h> +- ]], [dprintf fpurge fseeko ftello getdelim getline pclose popen renameat +- snprintf tmpfile vdprintf vsnprintf]) ++ ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen ++ renameat snprintf tmpfile vdprintf vsnprintf]) + ]) + + AC_DEFUN([gl_STDIO_MODULE_INDICATOR], +@@ -113,7 +112,6 @@ + GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) + GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) + GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) +- GNULIB_GETS=0; AC_SUBST([GNULIB_GETS]) + GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) + GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) + GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) |