[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
m4/openat.m4 robustness
From: |
Bruno Haible |
Subject: |
m4/openat.m4 robustness |
Date: |
Sat, 13 Nov 2010 14:04:29 +0100 |
User-agent: |
KMail/1.9.9 |
Hi Jim,
The macros in m4/openat.m4 could be made a little more reliable:
- Before running a test program that invokes fchownat(), make sure that
glibc will declare fchownat().
- Ensure that REPLACE_FCHOWNAT at is not set to 0 accidentally after it
has already been determined that its correct value should be 1.
In my tests, I didn't see the wrong macro ordering occur actually,
but the bugs could surface if macro invocations get rearranged, or
if fchownat is moved to a module of its own, or similar.
OK to apply?
2010-11-13 Bruno Haible <address@hidden>
openat: Ensure autoconf macro ordering.
* m4/openat.m4 (gl_FUNC_FCHOWNAT_DEREF_BUG): Require
gl_USE_SYSTEM_EXTENSIONS.
(gl_FUNC_FCHOWNAT): Require gl_UNISTD_H_DEFAULTS.
--- m4/openat.m4.orig Sat Nov 13 13:58:48 2010
+++ m4/openat.m4 Sat Nov 13 13:56:13 2010
@@ -63,6 +63,9 @@
# gl_FUNC_FCHOWNAT_DEREF_BUG([ACTION-IF-BUGGY[, ACTION-IF-NOT_BUGGY]])
AC_DEFUN([gl_FUNC_FCHOWNAT_DEREF_BUG],
[
+ dnl Persuade glibc <unistd.h> to declare fchownat().
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
AC_CACHE_CHECK([whether fchownat works with AT_SYMLINK_NOFOLLOW],
gl_cv_func_fchownat_nofollow_works,
[
@@ -104,6 +107,7 @@
# Also use the replacement function if fchownat is simply not available.
AC_DEFUN([gl_FUNC_FCHOWNAT],
[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
AC_REQUIRE([gl_FUNC_CHOWN])
AC_CHECK_FUNC([fchownat],
[gl_FUNC_FCHOWNAT_DEREF_BUG(
- m4/openat.m4 robustness,
Bruno Haible <=