From patchwork Mon Dec 6 20:56:46 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shirish Pargaonkar X-Patchwork-Id: 379972 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oB6L2dVB031228 for ; Mon, 6 Dec 2010 21:02:39 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753521Ab0LFVC2 (ORCPT ); Mon, 6 Dec 2010 16:02:28 -0500 Received: from mail-gx0-f180.google.com ([209.85.161.180]:34679 "EHLO mail-gx0-f180.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753235Ab0LFVC2 (ORCPT ); Mon, 6 Dec 2010 16:02:28 -0500 Received: by gxk19 with SMTP id 19so6996491gxk.11 for ; Mon, 06 Dec 2010 13:02:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=LvZHx2Sh8LnT6SGHMCzZ5OO6AmEdgw4eKriiQZXtyNM=; b=R3f2xd3lhojvcgTRWQQmiEPC23934hTU8aeNmw1ZyC8BaLSZ7YDPKoJrmRHwcbH4z5 LGSZr5QF8nB3lNMZr5nYvgC1hgBMhCmW/P6eO//iS7nxt5fxX6uT/hxGVf3lkueu0dAY AlvQOk36y6GXuRLpQGgDqqr/rRDnI6dr4i1uM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=AdVMP/Iz31ZiZLyPPerd0rHZYrCIECMeHimcy/A6mFzPbhX7TyeecCv5CHA2w50d44 c1xWK62Jk5DGNPrOF+RH0VVZwFCTxK+QHg8k8pSAF1b2O49mmATiAH56F1Dlj//EskE2 RIbGgENmNB4DB82GBeNmWOWbshMY5fr0Hhbrg= Received: by 10.150.135.1 with SMTP id i1mr219360ybd.436.1291669338738; Mon, 06 Dec 2010 13:02:18 -0800 (PST) Received: from localhost ([32.97.110.58]) by mx.google.com with ESMTPS id j63sm638030yha.18.2010.12.06.13.02.17 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 06 Dec 2010 13:02:18 -0800 (PST) From: shirishpargaonkar@gmail.com To: smfrench@gmail.com Cc: linux-cifs@vger.kernel.org, Shirish Pargaonkar Subject: [PATCH] cifs: Use mask of ACEs for SID Everyone to calculate all three permissions user, group, and other Date: Mon, 6 Dec 2010 14:56:46 -0600 Message-Id: <1291669006-12102-1-git-send-email-shirishpargaonkar@gmail.com> X-Mailer: git-send-email 1.6.0.2 Sender: linux-cifs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-cifs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Mon, 06 Dec 2010 21:02:39 +0000 (UTC) diff --git a/fs/cifs/cifsacl.c b/fs/cifs/cifsacl.c index c6ebea0..a520091 100644 --- a/fs/cifs/cifsacl.c +++ b/fs/cifs/cifsacl.c @@ -43,9 +43,12 @@ static struct cifs_wksid wksidarr[NUM_WK_SIDS] = { ; -/* security id for everyone */ +/* security id for everyone/world system group */ static const struct cifs_sid sid_everyone = { 1, 1, {0, 0, 0, 0, 0, 1}, {0} }; +/* security id for Authenticated Users system group */ +static const struct cifs_sid sid_authusers = { + 1, 1, {0, 0, 0, 0, 0, 5}, {11} }; /* group users */ static const struct cifs_sid sid_user = {1, 2 , {0, 0, 0, 0, 0, 5}, {} }; @@ -367,7 +370,7 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl, if (num_aces > 0) { umode_t user_mask = S_IRWXU; umode_t group_mask = S_IRWXG; - umode_t other_mask = S_IRWXO; + umode_t other_mask = S_IRWXU | S_IRWXG | S_IRWXO; ppace = kmalloc(num_aces * sizeof(struct cifs_ace *), GFP_KERNEL); @@ -392,6 +395,12 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl, ppace[i]->type, &fattr->cf_mode, &other_mask); + if (compare_sids(&(ppace[i]->sid), &sid_authusers)) + access_flags_to_mode(ppace[i]->access_req, + ppace[i]->type, + &fattr->cf_mode, + &other_mask); + /* memcpy((void *)(&(cifscred->aces[i])), (void *)ppace[i],