Compilation on Cygwin 2.4.1 resulted in an 'install' that behaved
differently depending on compile-time flags; I traced it to this
warning, where the difference was based on what was left in the
return register:

lib/set-permissions.c: In function 'set_acls_from_mode':
lib/set-permissions.c:273:1: warning: control reaches end of non-void
function [-Wreturn-type]

* lib/set-permissions.c (set_acls) [HAVE_FACL && GETACL]: Don't
fall off end of function. Fixes http://bugs.gnu.org/22949

Signed-off-by: Eric Blake <[email protected]>
---

This passed my testing on Cygwin; the #ifdef nest wasn't as
bad as I had been worried about.  Now pushed.

 ChangeLog             | 6 ++++++
 lib/set-permissions.c | 1 +
 2 files changed, 7 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 8634579..b81076f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-03-08  Eric Blake  <[email protected]>
+
+       acl: fix missing return on Cygwin
+       * lib/set-permissions.c (set_acls) [HAVE_FACL && GETACL]: Don't
+       fall off end of function. Fixes http://bugs.gnu.org/22949
+
 2016-02-20  Paul Eggert  <[email protected]>

        signbit: port back to pre-C++11 GCC
diff --git a/lib/set-permissions.c b/lib/set-permissions.c
index 0730754..2c77356 100644
--- a/lib/set-permissions.c
+++ b/lib/set-permissions.c
@@ -269,6 +269,7 @@ set_acls_from_mode (const char *name, int desc, mode_t 
mode, bool *must_chmod)
          }
        return -1;
       }
+    return 0;
   }
 }

-- 
2.5.0


Reply via email to