]> granicus.if.org Git - fcron/commitdiff
More portable code for va_arg() with mode_t (thank you Chris Calvey)
authorThibault Godouet <fcron@free.fr>
Mon, 26 Nov 2012 20:31:30 +0000 (20:31 +0000)
committerThibault Godouet <fcron@free.fr>
Mon, 26 Nov 2012 20:31:30 +0000 (20:31 +0000)
(followed recommendation from http://www.gnu.org/software/gnulib/manual/html_node/va_005farg.html)

subs.c

diff --git a/subs.c b/subs.c
index 204e5f58d7e3057e8d2bfe7d3f5f0d0de114af5b..25ce697a714c798792a6b4eca1fb22b71fd8e9a4 100644 (file)
--- a/subs.c
+++ b/subs.c
@@ -102,7 +102,7 @@ open_as_user(const char *pathname, uid_t openuid, gid_t opengid, int flags, ...)
 
     if (flags & O_CREAT) {
         va_start(ap, flags);
-        mode = va_arg(ap, mode_t);
+        mode = (sizeof(mode_t) < sizeof(int)) ? va_arg(ap, int) : va_arg(ap, mode_t);
         va_end(ap);
     }
 
@@ -160,7 +160,7 @@ open_as_user(const char *pathname, uid_t openuid, gid_t opengid, int flags, ...)
 
     if (flags & O_CREAT) {
         va_start(ap, flags);
-        mode = va_arg(ap, mode_t);
+        mode = (sizeof(mode_t) < sizeof(int)) ? va_arg(ap, int) : va_arg(ap, mode_t);
         va_end(ap);
     }