Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp1928451pxb; Wed, 2 Feb 2022 16:12:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJxQOhoL5Cxn4S01zMULmajdYS3GK+8sOgRno1jP0N6Zsa3K29x6LLCxs942Wsw0+dtKiYso X-Received: by 2002:a63:6842:: with SMTP id d63mr25846727pgc.213.1643847136954; Wed, 02 Feb 2022 16:12:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643847136; cv=none; d=google.com; s=arc-20160816; b=URv8Lctx9b+Ot+pevmZbGAO8hxP4iw/GQ/Y+mZqHeGwRzgqaYQD0qSa9CcCF1HzHu5 Wy0tdX5OhH2q0F/S+6ySRUZBcPIEIYOozydC8bMG9x97qNAU6PI6kC0cNOMQSBSSTySt CN3WldDu8XS8Bi4baS2dqANSXD2327ARWRTFixPUsSl3a1JJRxvqGiPWd8IZJcn35ZRK uJPDPiNxv16nVKGYpcSehDEJtd7UR3WosK7wTH+Nt4ED3FU1foWTt0l3rCU0Hz5XAj/3 1zSF/MNJ9HftaWG4hg6A7kqtki1qyUPWCbJPny8/UpY6TusSWz8HfnbeCqDV08YX+mUc XgwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=sFUSweAG1xqhzQLZf+qgHtmVMyG+ZwNZxELpOo7tJ7Y=; b=jAJpteaO5EiUt9uLsjVcWbGpEygzvs4CvjqFCiaHK0sI3/O/ZYUUXg7anaEfwtrM3T Vqde82tBMo8i4cirnK6B54cDe5Zyn3m2/zbcpUdhE3FP52guBArY321hPJjwukPd5/6F l90TE2wMYaGfsgXqxd3YJs7uoqJSB7pH2OGP7Gj3FNrazSOGzveJc0LvH0oOVZTYKbtk 6dagB25V3aUwOoVcncAbOXYtxllDVRFFANYId69FXQtQQGKaXWUm2F1DL7/s19oymY+c 1XmvFd9WDm+IuoZL8tIAcfH8QZBFd19yGIsldPO3GfjXXtt2Nw709TDN7RoieQbhf4dR IpeQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@paul-moore-com.20210112.gappssmtp.com header.s=20210112 header.b=CuUvvIsT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nd5si5829606pjb.83.2022.02.02.16.12.04; Wed, 02 Feb 2022 16:12:16 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@paul-moore-com.20210112.gappssmtp.com header.s=20210112 header.b=CuUvvIsT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237814AbiBAUKH (ORCPT + 99 others); Tue, 1 Feb 2022 15:10:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237506AbiBAUKG (ORCPT ); Tue, 1 Feb 2022 15:10:06 -0500 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 30079C06173B for ; Tue, 1 Feb 2022 12:10:06 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id r10so37063763edt.1 for ; Tue, 01 Feb 2022 12:10:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paul-moore-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=sFUSweAG1xqhzQLZf+qgHtmVMyG+ZwNZxELpOo7tJ7Y=; b=CuUvvIsTnO5K5mWWbYYmYYXege1CBgtanGtwEfBdyx7IDiadCxdZRbJ3kkvt3/w1rp 09/Lr0wBt1eqUr45j9XsfBW6SAH1YALzgAQISJ62txmRPEnV3YLmNreJF9SaQ3+clrVe gF0T+NyP7E7+QMauL9Y/2EyITmo5IpWj3msatcJzANo+tvM+mMSDHmyAVtZKxAOjaL6B I66CbZWYpZ/kcP9nxbL4oFAC2NLgzpuDHNwhPQKdAlJiBCSWofLDzP13MSRpJPYHjtmt uuM2WV36BoMaiTBLe6JvuqqI45nhtQtDyUk9qBLYz/M7dTyJ+guR1MgzJ2mMxlyeitsG z6rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=sFUSweAG1xqhzQLZf+qgHtmVMyG+ZwNZxELpOo7tJ7Y=; b=mHoBlEglcpysPX8jnm+kWv8yF3M3ij6/Z3XAHDl6q/pe0WqkWKG0uF+wQJ885msaO2 A5n6qSFEVmX4lQeU96UODe+V4llVahDLtiLM1z1xxl+qtSu1mgjzA/5a/aQyM0vDMhiU xQdWmEpvia+opZ5vNadMACJ7VJgXb7HtqLDmjXZD/pPvIHQdDtcJQJoeHfXArI60sAU5 LyeDCmSacimh90QkpXtFaUhHZEBrXLzgByPQpaLIXJcJzXk4Cw6a2MH1XxAjwOadA29H fHnmXBPtWPf8/1jywarJ9esk5xqYBsc2KaUzmJ+5LSBkBJREyqi+b0mBawynUF1xqP+3 RR7w== X-Gm-Message-State: AOAM530oG1ct3/nBn9fBMzZitzGNW70r5L1Eg72SZXo7uXaxiBe50rOp K3eZ/tD96uZCQmhKirx8mOg+6XfF0gPSdtJS29wm X-Received: by 2002:a05:6402:345:: with SMTP id r5mr27432331edw.269.1643746204648; Tue, 01 Feb 2022 12:10:04 -0800 (PST) MIME-Version: 1.0 References: <20220128202858.96935-1-vbendel@redhat.com> <20220128202858.96935-4-vbendel@redhat.com> In-Reply-To: <20220128202858.96935-4-vbendel@redhat.com> From: Paul Moore Date: Tue, 1 Feb 2022 15:09:53 -0500 Message-ID: Subject: Re: [PATCH 3/3] selinux: remove duplicate cond_list clean up calls To: vbendel@redhat.com Cc: stephen.smalley.work@gmail.com, eparis@parisplace.org, omosnace@redhat.com, selinux@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 28, 2022 at 3:29 PM wrote: > From: Vratislav Bendel > > On error path from cond_read_list() and duplicate_policydb_cond_list() > the *_destroy() functions get called a second time in caller functions. > Remove the first calls and let the callers clean it. > > Suggested-by: Ondrej Mosnacek > Signed-off-by: Vratislav Bendel > --- > security/selinux/ss/conditional.c | 20 ++++++-------------- > 1 file changed, 6 insertions(+), 14 deletions(-) > > diff --git a/security/selinux/ss/conditional.c b/security/selinux/ss/conditional.c > index 8bc16ad3af9e..c333daaeceab 100644 > --- a/security/selinux/ss/conditional.c > +++ b/security/selinux/ss/conditional.c > @@ -432,19 +432,16 @@ int cond_read_list(struct policydb *p, void *fp) > > rc = avtab_alloc(&(p->te_cond_avtab), p->te_avtab.nel); > if (rc) > - goto err; > + return rc; > > p->cond_list_len = len; > > for (i = 0; i < len; i++) { > rc = cond_read_node(p, &p->cond_list[i], fp); > if (rc) > - goto err; > + return rc; > } > return 0; > -err: > - cond_list_destroy(p); > - return rc; > } I tend to prefer functions that cleanup their own allocations on error. It makes it easier and quicker to reason about a function's error handling. I recognize in this case it may mean multiple calls to cond_list_destroy(), but that should be safe (considering the previous patches in this series), and we are on the error path anyway so I'm not as worried about a few extra instructions. -- paul-moore.com