X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=m4%2Fchown.m4;fp=m4%2Fchown.m4;h=f664e7c57f85cbdde67bbd7a5e02f01aa29bfc49;hb=1a44d77d50f4fb37c0410eed04b82303624ea2ec;hp=ea3fe4c4c891dffc953553b735d01279d08fc606;hpb=dda6367c9eac71da8f2ab1c60b3df60f19ce4755;p=debian%2Ftar diff --git a/m4/chown.m4 b/m4/chown.m4 index ea3fe4c4..f664e7c5 100644 --- a/m4/chown.m4 +++ b/m4/chown.m4 @@ -1,7 +1,7 @@ -# serial 23 +# serial 24 # Determine whether we need the chown wrapper. -dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2010 Free Software +dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2011 Free Software dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -114,6 +114,7 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK], int main () { + int result = 0; char const *dangling_symlink = "conftest.dangle"; unlink (dangling_symlink); @@ -122,8 +123,11 @@ AC_DEFUN_ONCE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK], /* Exit successfully on a conforming system, i.e., where chown must fail with ENOENT. */ - exit ( ! (chown (dangling_symlink, getuid (), getgid ()) != 0 - && errno == ENOENT)); + if (chown (dangling_symlink, getuid (), getgid ()) == 0) + result |= 1; + if (errno != ENOENT) + result |= 2; + return result; } ]])], [gl_cv_func_chown_follows_symlink=yes],