Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp2981424imu; Sun, 9 Dec 2018 14:13:23 -0800 (PST) X-Google-Smtp-Source: AFSGD/WZQgmzQZQO1IqWvKE10XKiCRRstMJXso1EEQDKj0R62Qt6TjqDIXxzizIcK35k3kmhocBE X-Received: by 2002:a63:ce50:: with SMTP id r16mr8764092pgi.217.1544393603537; Sun, 09 Dec 2018 14:13:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544393603; cv=none; d=google.com; s=arc-20160816; b=O7APEv2tzD+nq7VXpUIbhYoKJY1rme8kGVvrQ3dwRt7eXeJEU02ligkSAo8XZsPKvu eEV6f/JkLWKWC4Y5FICnGqFWAhx3OMkMIP42wm8npRax0PpU1yNFUfRdhkvaFp+0qiUz tJ6yWwWHLwjr+ATz/I7RIofPsxJ+xt5iPeItt1IbriRoRlebtkdwd4UveY8zLwKMV/Ed jKUP++5bYPbd7e7EnMOJpLyKctpmLEXtVqZ8cvT9LcvExd2zniKFzoiAu3qKmJdN2Dqo EzEVraq++hn1FDQoyzkJr99EpThiakg+sTN1CuQ77yoI35asqjgLJMCXYZ0CRmJLiQHW +hlw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:subject:message-id:date:cc:to :from:mime-version:content-transfer-encoding:content-disposition; bh=b3L83ktJSo3cW74qEYhHXtvHu17iy2eqQtKkk8Hyh5A=; b=tflXFQr5RmKTaICD9rpomcZn8rRXEGpKGbuBnBI8WAUngP6LSBch+pu+lS/En+6NLM 9g/Q5zQhFR8HDqydZL931CKVhzzxrAHT9kj/BYVdT+P20Epj/U6J515WWPTNrxWGBM+r 82+hJjYuN5RGNLjqtoFs4bg9AF6qk0jDLX/tHWdvIS2V9C/88dKe3i34wC4rE02CL3lQ ib9tCrWjzr55x50dnxyyAPJSQ0OfUj+lkIA1yghn4j6avNcNCstkOKQ3DbJqyvQMYmz5 YD6L3TrYRMo2lCAdV1ceZl9foXyzCvLjPZYGgnzHKAMJKARK6p9PwPj+5CSZdsYp8BlL bmhw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s192si8346116pgc.144.2018.12.09.14.13.08; Sun, 09 Dec 2018 14:13:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728174AbeLIWKj (ORCPT + 99 others); Sun, 9 Dec 2018 17:10:39 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:37570 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728116AbeLIWKc (ORCPT ); Sun, 9 Dec 2018 17:10:32 -0500 Received: from pub.yeoldevic.com ([81.174.156.145] helo=deadeye) by shadbolt.decadent.org.uk with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gW73B-0002pr-Pr; Sun, 09 Dec 2018 21:55:45 +0000 Received: from ben by deadeye with local (Exim 4.91) (envelope-from ) id 1gW72e-0003Qk-7z; Sun, 09 Dec 2018 21:55:12 +0000 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 From: Ben Hutchings To: linux-kernel@vger.kernel.org, stable@vger.kernel.org CC: akpm@linux-foundation.org, "Dan Carpenter" , "John Johansen" Date: Sun, 09 Dec 2018 21:50:33 +0000 Message-ID: X-Mailer: LinuxStableQueue (scripts by bwh) X-Patchwork-Hint: ignore Subject: [PATCH 3.16 156/328] apparmor: remove no-op permission check in policy_unpack In-Reply-To: X-SA-Exim-Connect-IP: 81.174.156.145 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.16.62-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: John Johansen commit c037bd615885f1d9d3bdb48531bace79fae1505d upstream. The patch 736ec752d95e: "AppArmor: policy routines for loading and unpacking policy" from Jul 29, 2010, leads to the following static checker warning: security/apparmor/policy_unpack.c:410 verify_accept() warn: bitwise AND condition is false here security/apparmor/policy_unpack.c:413 verify_accept() warn: bitwise AND condition is false here security/apparmor/policy_unpack.c 392 #define DFA_VALID_PERM_MASK 0xffffffff 393 #define DFA_VALID_PERM2_MASK 0xffffffff 394 395 /** 396 * verify_accept - verify the accept tables of a dfa 397 * @dfa: dfa to verify accept tables of (NOT NULL) 398 * @flags: flags governing dfa 399 * 400 * Returns: 1 if valid accept tables else 0 if error 401 */ 402 static bool verify_accept(struct aa_dfa *dfa, int flags) 403 { 404 int i; 405 406 /* verify accept permissions */ 407 for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) { 408 int mode = ACCEPT_TABLE(dfa)[i]; 409 410 if (mode & ~DFA_VALID_PERM_MASK) 411 return 0; 412 413 if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK) 414 return 0; fixes: 736ec752d95e ("AppArmor: policy routines for loading and unpacking policy") Reported-by: Dan Carpenter Signed-off-by: John Johansen Signed-off-by: Ben Hutchings --- security/apparmor/policy_unpack.c | 32 ------------------------------- 1 file changed, 32 deletions(-) --- a/security/apparmor/policy_unpack.c +++ b/security/apparmor/policy_unpack.c @@ -290,32 +290,6 @@ static int unpack_strdup(struct aa_ext * return res; } -#define DFA_VALID_PERM_MASK 0xffffffff -#define DFA_VALID_PERM2_MASK 0xffffffff - -/** - * verify_accept - verify the accept tables of a dfa - * @dfa: dfa to verify accept tables of (NOT NULL) - * @flags: flags governing dfa - * - * Returns: 1 if valid accept tables else 0 if error - */ -static bool verify_accept(struct aa_dfa *dfa, int flags) -{ - int i; - - /* verify accept permissions */ - for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) { - int mode = ACCEPT_TABLE(dfa)[i]; - - if (mode & ~DFA_VALID_PERM_MASK) - return 0; - - if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK) - return 0; - } - return 1; -} /** * unpack_dfa - unpack a file rule dfa @@ -351,15 +325,9 @@ static struct aa_dfa *unpack_dfa(struct if (IS_ERR(dfa)) return dfa; - if (!verify_accept(dfa, flags)) - goto fail; } return dfa; - -fail: - aa_put_dfa(dfa); - return ERR_PTR(-EPROTO); } /**