>From 4e02fe2fa7eaf841e8f84bf3a370ba4475ebee3c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 5 Jun 2015 11:47:37 -0700 Subject: [PATCH] acl-permissions: more porting to AIX * lib/file-has-acl.c (file_has_acl) [HAVE_STATACL]: * lib/readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: * lib/set-permissions.c (set_acls) [HAVE_ACLX_GET && ACL_AIX_WIP]: Add cast for AIX, whose system calls are declared to accept char * even though the arguments are really char const *. * lib/mountlist.c (read_file_system_list) [MOUNTED_VMOUNT]: Rework types to pacify xlc. --- ChangeLog | 13 +++++++++++-- lib/file-has-acl.c | 2 +- lib/mountlist.c | 8 +++++--- lib/readutmp.c | 2 +- lib/set-permissions.c | 2 +- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 296ccaf..cba559d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,11 +5,20 @@ 2015-06-05 Paul Eggert - acl-permissions: port to older AIX, C89 HP-UX + acl-permissions: port to AIX, C89 HP-UX + Problems reported by Michael Felt. + * lib/file-has-acl.c (file_has_acl) [HAVE_STATACL]: + * lib/get-permissions.c (get_permissions) [USE_ACL && HAVE_STATACL]: + * lib/readutmp.c (read_utmp) [UTMP_NAME_FUNCTION]: + * lib/set-permissions.c (set_acls) [HAVE_ACLX_GET && ACL_AIX_WIP]: + Add cast for AIX, whose system calls are declared to accept + char * even though the arguments are really char const *. * lib/get-permissions.c (get_permissions): If USE_ACL && HAVE_GETACL /* HP-UX */, don't assume C99. If USE_ACL && HAVE_STATACL /* older AIX */, add missing decl - that broke a build, reported by Michael Felt. + that broke a build. + * lib/mountlist.c (read_file_system_list) [MOUNTED_VMOUNT]: + Rework types to pacify xlc. 2015-06-03 Pádraig Brady diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c index 7e26c53..8488b7e 100644 --- a/lib/file-has-acl.c +++ b/lib/file-has-acl.c @@ -457,7 +457,7 @@ file_has_acl (char const *name, struct stat const *sb) union { struct acl a; char room[4096]; } u; - if (statacl (name, STX_NORMAL, &u.a, sizeof (u)) < 0) + if (statacl ((char *) name, STX_NORMAL, &u.a, sizeof (u)) < 0) return -1; return acl_nontrivial (&u.a); diff --git a/lib/mountlist.c b/lib/mountlist.c index fe36157..d548252 100644 --- a/lib/mountlist.c +++ b/lib/mountlist.c @@ -970,18 +970,20 @@ read_file_system_list (bool need_fs_type) #ifdef MOUNTED_VMOUNT /* AIX. */ { int bufsize; - char *entries, *thisent; + void *entries; + char *thisent; struct vmount *vmp; int n_entries; int i; /* Ask how many bytes to allocate for the mounted file system info. */ - if (mntctl (MCTL_QUERY, sizeof bufsize, (struct vmount *) &bufsize) != 0) + entries = &bufsize; + if (mntctl (MCTL_QUERY, sizeof bufsize, entries) != 0) return NULL; entries = xmalloc (bufsize); /* Get the list of mounted file systems. */ - n_entries = mntctl (MCTL_QUERY, bufsize, (struct vmount *) entries); + n_entries = mntctl (MCTL_QUERY, bufsize, entries); if (n_entries < 0) { int saved_errno = errno; diff --git a/lib/readutmp.c b/lib/readutmp.c index 8a3936f..1005003 100644 --- a/lib/readutmp.c +++ b/lib/readutmp.c @@ -97,7 +97,7 @@ read_utmp (char const *file, size_t *n_entries, STRUCT_UTMP **utmp_buf, Solaris' utmpname returns 1 upon success -- which is contrary to what the GNU libc version does. In addition, older GNU libc versions are actually void. */ - UTMP_NAME_FUNCTION (file); + UTMP_NAME_FUNCTION ((char *) file); SET_UTMP_ENT (); diff --git a/lib/set-permissions.c b/lib/set-permissions.c index ba291f3..2236879 100644 --- a/lib/set-permissions.c +++ b/lib/set-permissions.c @@ -699,7 +699,7 @@ set_acls (struct permission_context *ctx, const char *name, int desc, if (desc != -1) ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len); else - ret = chacl (name, &ctx->u.a, ctx->u.a.acl_len); + ret = chacl ((char *) name, &ctx->u.a, ctx->u.a.acl_len); if (ret < 0) { if (errno == ENOSYS && from_mode) -- 2.1.0