Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't define an array with no size.
[rsync/rsync.git]
/
lib
/
sysacls.c
diff --git
a/lib/sysacls.c
b/lib/sysacls.c
index
008e4c1
..
7334fd4
100644
(file)
--- a/
lib/sysacls.c
+++ b/
lib/sysacls.c
@@
-2,6
+2,7
@@
* Unix SMB/CIFS implementation.
* Based on the Samba ACL support code.
* Copyright (C) Jeremy Allison 2000.
* 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.
*
* The permission functions have been changed to get/set all bits via
* one call. Some functions that rsync doesn't need were also removed.
@@
-550,7
+551,7
@@
SMB_ACL_T sys_acl_init(int count)
* acl[] array, this actually allocates an ACL with room
* for (count+1) entries
*/
* acl[] array, this actually allocates an ACL with room
* for (count+1) entries
*/
- if ((a = (SMB_ACL_T)SMB_MALLOC(sizeof
(struct SMB_ACL_T) + count * sizeof
(struct acl))) == NULL) {
+ if ((a = (SMB_ACL_T)SMB_MALLOC(sizeof
a[0] + count * sizeof
(struct acl))) == NULL) {
errno = ENOMEM;
return NULL;
}
errno = ENOMEM;
return NULL;
}
@@
-1006,7
+1007,7
@@
SMB_ACL_T sys_acl_init(int count)
* acl[] array, this actually allocates an ACL with room
* for (count+1) entries
*/
* acl[] array, this actually allocates an ACL with room
* for (count+1) entries
*/
- if ((a =
SMB_MALLOC(sizeof(struct SMB_ACL_T)
+ count * sizeof(struct acl))) == NULL) {
+ if ((a =
(SMB_ACL_T)SMB_MALLOC(sizeof a[0]
+ count * sizeof(struct acl))) == NULL) {
errno = ENOMEM;
return NULL;
}
errno = ENOMEM;
return NULL;
}
@@
-1637,14
+1638,14
@@
SMB_ACL_T sys_acl_init(int count)
return NULL;
}
return NULL;
}
- if ((a =
SMB_MALLOC(sizeof(struct SMB_ACL_T) + sizeof
(struct acl))) == NULL) {
+ if ((a =
(SMB_ACL_T)SMB_MALLOC(sizeof a[0] + sizeof
(struct acl))) == NULL) {
errno = ENOMEM;
return NULL;
}
a->next = -1;
a->freeaclp = False;
errno = ENOMEM;
return NULL;
}
a->next = -1;
a->freeaclp = False;
- a->aclp = (struct acl *)(
&a->aclp + sizeof(struct acl *)
);
+ a->aclp = (struct acl *)(
(char *)a + sizeof a[0]
);
a->aclp->acl_cnt = 0;
return a;
a->aclp->acl_cnt = 0;
return a;
@@
-2703,6
+2704,8
@@
int sys_acl_set_info(SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tag_type, uint32 bits,
rc = mbr_uid_to_uuid(u_g_id, uu);
else
rc = mbr_gid_to_uuid(u_g_id, uu);
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
if (acl_set_tag_type(entry, tag_type) != 0
|| acl_set_qualifier(entry, &uu) != 0