* Unix SMB/CIFS implementation.
* Based on the Samba ACL support code.
* Copyright (C) Jeremy Allison 2000.
+ * Copyright (C) 2007-2008 Wayne Davison
*
* The permission functions have been changed to get/set all bits via
* one call. Some functions that rsync doesn't need were also removed.
struct new_acl_entry *entry;
int keep_going;
+ if (entry_id == SMB_ACL_FIRST_ENTRY)
+ theacl->count = 0;
+ else if (entry_id != SMB_ACL_NEXT_ENTRY) {
+ errno = EINVAL;
+ return -1;
+ }
+
DEBUG(10,("This is the count: %d\n",theacl->count));
/* Check if count was previously set to -1. *
struct acl_entry_link *acl_entry_link_head;
int i;
int rc = 0;
- uid_t user_id;
/* AIX has no DEFAULT */
if ( type == SMB_ACL_TYPE_DEFAULT ) {
struct acl_entry_link *acl_entry_link_head;
int i;
int rc = 0;
- uid_t user_id;
/* Get the acl using fstatacl */
{
struct acl_entry_link *theacl = NULL;
+ if (count < 0) {
+ errno = EINVAL;
+ return NULL;
+ }
+
DEBUG(10,("Entering sys_acl_init\n"));
theacl = SMB_MALLOC_P(struct acl_entry_link);
struct acl_entry *acl_entry = NULL;
struct ace_id *ace_id = NULL;
uint id_type;
- uint ace_access;
uint user_id;
uint acl_length;
uint rc;
}
#endif
-int sys_acl_delete_def_file(const char *name)
+int sys_acl_delete_def_file(UNUSED(const char *name))
{
/* AIX has no default ACL */
return 0;
rc = mbr_uid_to_uuid(u_g_id, uu);
else
rc = mbr_gid_to_uuid(u_g_id, uu);
+ if (rc != 0)
+ return rc;
if (acl_set_tag_type(entry, tag_type) != 0
|| acl_set_qualifier(entry, &uu) != 0