From: Wayne Davison Date: Mon, 5 Nov 2007 18:15:01 +0000 (+0000) Subject: If the xattr data is bogus in get_rsync_acl(), free the buffer. X-Git-Tag: v3.0.0pre5~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4b1553e2d4c6d2df6e7ae327966ccea7b0dc5ca8;p=platform%2Fupstream%2Frsync.git If the xattr data is bogus in get_rsync_acl(), free the buffer. --- diff --git a/acls.c b/acls.c index 6cbd80a..04cff88 100644 --- a/acls.c +++ b/acls.c @@ -476,8 +476,10 @@ static int get_rsync_acl(const char *fname, rsync_acl *racl, if ((buf = get_xattr_acl(fname, type == SMB_ACL_TYPE_ACCESS, &len)) == NULL) return 0; cnt = (len - 4*4) / (4+4); - if (len < 4*4 || len != (size_t)cnt*(4+4) + 4*4) + if (len < 4*4 || len != (size_t)cnt*(4+4) + 4*4) { + free(buf); return -1; + } racl->user_obj = IVAL(buf, 0); racl->group_obj = IVAL(buf, 4);