Backport gnulib fixes for C11. Fixes Savannah bug #37738.

* grub-core/gnulib/stdio.in.h (gets): Warn on use only if
HAVE_RAW_DECL_GETS.
* m4/stdio_h.m4 (gl_STDIO_H): Check for gets.
This commit is contained in:
Colin Watson 2012-12-28 06:43:35 +00:00
parent e3501b1306
commit 7024b3c0c2
3 changed files with 13 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2012-12-28 Colin Watson <cjwatson@ubuntu.com>
Backport gnulib fixes for C11. Fixes Savannah bug #37738.
* grub-core/gnulib/stdio.in.h (gets): Warn on use only if
HAVE_RAW_DECL_GETS.
* m4/stdio_h.m4 (gl_STDIO_H): Check for gets.
2012-12-11 Vladimir Serbinenko <phcoder@gmail.com>
* util/grub.d/20_linux_xen.in: Addmissing assignment to machine.

View File

@ -138,10 +138,12 @@ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - "
#endif
/* 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
#if @GNULIB_FOPEN@
# if @REPLACE_FOPEN@

View File

@ -37,7 +37,7 @@ AC_DEFUN([gl_STDIO_H],
dnl corresponding gnulib module is not in use, and which is not
dnl guaranteed by C89.
gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
]], [dprintf fpurge fseeko ftello getdelim getline popen renameat
]], [dprintf fpurge fseeko ftello getdelim getline gets popen renameat
snprintf tmpfile vdprintf vsnprintf])
])