Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp680624imu; Fri, 21 Dec 2018 05:48:18 -0800 (PST) X-Google-Smtp-Source: AFSGD/UJeozegXo1yimKuftDFBLeijAsD3le4LtbQnmOqGIMktLGX04Ecg53M7C0XBRgFYnsws56 X-Received: by 2002:a62:8893:: with SMTP id l141mr2574904pfd.1.1545400097924; Fri, 21 Dec 2018 05:48:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545400097; cv=none; d=google.com; s=arc-20160816; b=Yd1ZP/l0oOAS3eL9CoIdcd6k+rcuEnEUJOhDQXWcJ1g6Jv7a1OPM1ANuc4yBEXxLSG RSWvBRrej6tTNue+6hegKcGSFC4paPVs1bGaTzhxreUk/QYfw6LkGPakxiNvvs7ic/lu AIZm+aWIQU7u0slzoxv19D3kI0oX38jC1Y24wdExYSXmXM8vjihKcgcNKlqqGap4EE13 zPJEv3gdmMDWaaeLtd+WyllTmPkmxxVgBg8f1qMIlkgJhIvjJK6um3tD84uSjK3x5Rbk 0lgXLGnF/b9z/S7mlpp5Ib26gYaTpm1T5HeGAfGDNEpk3vCTsxuf4Fu0GSFdG0IpjTSd 4LFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=+1oZR3dHaq/Eu17Sz3ttJHOWC/iaCGB0yJMQXAxGUa0=; b=rTWAtnjf+NUR19A+HeDICrz+Xww96AaxzNkxuYOCd+7FFvM6gKeHORXIm3HAm+6umk pIR0rMMC5gaV+QyuVnvtK0mYXgItQhBndlvY/00EhfCPbdnnwIUdB9GVV1LxY89b42Ow Zi3sM0nRi1zQ4xmuJkwa9aYaCbaX4YW1xFvI4n/dry9mo24Vp1nbiY2d1CFa5hvGIecw HDMpr/dNfZE4x51l2DP/w9nRMZGeo3nWxpr9v6rrqOBjYjYGQj06K+T4riDLzzJV4AA6 eLCPc3VeVXWdnWIWVWgl/TR1a4MXkPBkqIQJXJcf6dipQFAHgRqKUt7SqqopGKDQflgU g8Sg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=WQSIGj7X; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g3si21910240pgi.443.2018.12.21.05.48.01; Fri, 21 Dec 2018 05:48:17 -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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=WQSIGj7X; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726012AbeLUFxS (ORCPT + 99 others); Fri, 21 Dec 2018 00:53:18 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:43862 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725962AbeLUFxS (ORCPT ); Fri, 21 Dec 2018 00:53:18 -0500 Received: by mail-pf1-f193.google.com with SMTP id w73so2051744pfk.10; Thu, 20 Dec 2018 21:53:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+1oZR3dHaq/Eu17Sz3ttJHOWC/iaCGB0yJMQXAxGUa0=; b=WQSIGj7XYbLDhTcIGOV9FAe/Zsj/+9KDXIUs9YsRCDbo5t5jQ/hZs3lPG2vbN2EAdA av2OebcX79IucbbFqZihdtrkn/7XW/E7YP3AlBsO8+XaQJeZ8XpaXBij6rCFptxnwqD0 lNT1t5cFbras/5PYUVRiZ6aiX35bek47aVqhvuBeINMjNatD6+jKeLMkuHlD0dnRHZY/ XfPXIJNfiW70532w4zt/8tFpbxkWvx+hc5Vr3T6IPkFRWJyMJe4lf1Za0y1yOG6XaWd1 TCZPDhrmNzpHT3hf/e5IcF1lce9joznVGMowkRcXfzveJvqqQzzm3dou4JLUE30Z3+PV PPgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+1oZR3dHaq/Eu17Sz3ttJHOWC/iaCGB0yJMQXAxGUa0=; b=KlmNfF75MMyizMYwRO70zFhFdLllTCYJw1BzwC3XFU23TDbnn5bDXyV5MvLcPnYCG0 ruzVx+RrPbiqWNpHqHtm/C/pG4iKiZ+FfuWW+K2rIPaEmjtwI08q8YovYxwGbc7+HtHc 0Wrs6bbZNOyoDcFCZvCLz8FDPRRSe9hH2aTKFxzpuEnPcropxxAYjA4ECm/8fMQntfqc Z/Gf9OsZAvS43yaYZFt5IgD+q2GxXMGjayems9kjBxGewVJYRu7opcrdxYj44ct59Wjj vr7nxe5K1m0+bPdTIqRNI9AEzhZSZQ/lCgkG6L9nT9cBc7r0WQSmaPK14rjCifpw99kN a9ag== X-Gm-Message-State: AA+aEWboCyitymmhiK5IXLnKrfNCbYz21RGz9cXBr7bjtOzr65Kzt8qy zHRFshcDerXwwG4q8xxKlNLNYWY0eM5PEaDrlJY= X-Received: by 2002:a62:c683:: with SMTP id x3mr1180225pfk.10.1545371596534; Thu, 20 Dec 2018 21:53:16 -0800 (PST) MIME-Version: 1.0 References: <1545150439-26055-1-git-send-email-hofrat@osadl.org> <4db484684a6e9b096c7fdf57673fd208d1c4005a.camel@perches.com> <20181219072250.GA18501@osadl.at> <6ef8274c8fc7adb7903cf3874fbab1098881ed4c.camel@perches.com> In-Reply-To: <6ef8274c8fc7adb7903cf3874fbab1098881ed4c.camel@perches.com> From: Steve French Date: Thu, 20 Dec 2018 23:53:04 -0600 Message-ID: Subject: Re: [PATCH] cifs: check kzalloc return To: Joe Perches Cc: Nicholas Mc Guire , Steve French , CIFS , samba-technical , LKML , Nicholas Mc Guire Content-Type: multipart/mixed; boundary="0000000000000f081a057d81ddf8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --0000000000000f081a057d81ddf8 Content-Type: text/plain; charset="UTF-8" Updated the patch with Joe's signed off and Nicholas's reviewed-by and pushed to cifs-2.6.git for-next See attached. On Wed, Dec 19, 2018 at 4:58 AM Joe Perches via samba-technical wrote: > > On Wed, 2018-12-19 at 08:22 +0100, Nicholas Mc Guire wrote: > > On Tue, Dec 18, 2018 at 09:33:58AM -0800, Joe Perches wrote: > > > On Tue, 2018-12-18 at 17:27 +0100, Nicholas Mc Guire wrote: > > > > kzalloc can return NULL so a check is needed. While there is a > > > > check for ret_buf there is no check for the allocation of > > > > ret_buf->crfid.fid - this check is thus added. Both call-sites > > > > of tconInfoAlloc() check for NULL return of tconInfoAlloc() > > > > so returning NULL on failure of kzalloc() here seems appropriate. > > > > As the kzalloc() is the only thing here that can fail it is > > > > moved to the beginning so as not to initialize other resources > > > > on failure of kzalloc. > > > > > > > Perhaps use a more common style by returning early on the > > > first possible failure too so the block can be unindented. > [] > > > yup the restructured cleanup would be the better way to go > > > > rather than making this two patches I guess it would be the > > best to just skip the intermediate kzalloc only cleanup - > > atleast I see little value in that intermediat step - so > > could you take care of the kzalloc() in your refactoring > > please ? > > I did that in the patch I proposed, which is trivial. > If you want to take it, please do. > > If you want a sign-off: > > Signed-off-by: Joe Perches > > > > diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c > [] > > > @@ -111,21 +111,27 @@ struct cifs_tcon * > > > tconInfoAlloc(void) > > > { > > > struct cifs_tcon *ret_buf; > > > - ret_buf = kzalloc(sizeof(struct cifs_tcon), GFP_KERNEL); > > > - if (ret_buf) { > > > - atomic_inc(&tconInfoAllocCount); > > > - ret_buf->tidStatus = CifsNew; > > > - ++ret_buf->tc_count; > > > - INIT_LIST_HEAD(&ret_buf->openFileList); > > > - INIT_LIST_HEAD(&ret_buf->tcon_list); > > > - spin_lock_init(&ret_buf->open_file_lock); > > > - mutex_init(&ret_buf->crfid.fid_mutex); > > > - ret_buf->crfid.fid = kzalloc(sizeof(struct cifs_fid), > > > - GFP_KERNEL); > > > - spin_lock_init(&ret_buf->stat_lock); > > > - atomic_set(&ret_buf->num_local_opens, 0); > > > - atomic_set(&ret_buf->num_remote_opens, 0); > > > + > > > + ret_buf = kzalloc(sizeof(*ret_buf), GFP_KERNEL); > > > + if (!ret_buf) > > > + return NULL; > > > + ret_buf->crfid.fid = kzalloc(sizeof(*ret_buf->crfid.fid), GFP_KERNEL); > > > + if (!ret_buf->crfid.fid) { > > > + kfree(ret_buf); > > > + return NULL; > > > } > > > + > > > + atomic_inc(&tconInfoAllocCount); > > > + ret_buf->tidStatus = CifsNew; > > > + ++ret_buf->tc_count; > > > + INIT_LIST_HEAD(&ret_buf->openFileList); > > > + INIT_LIST_HEAD(&ret_buf->tcon_list); > > > + spin_lock_init(&ret_buf->open_file_lock); > > > + mutex_init(&ret_buf->crfid.fid_mutex); > > > + spin_lock_init(&ret_buf->stat_lock); > > > + atomic_set(&ret_buf->num_local_opens, 0); > > > + atomic_set(&ret_buf->num_remote_opens, 0); > > > + > > > return ret_buf; > > > } > > > > > > -- Thanks, Steve --0000000000000f081a057d81ddf8 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-cifs-check-kzalloc-return.patch" Content-Disposition: attachment; filename="0001-cifs-check-kzalloc-return.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jpxmc8db0 RnJvbSA2ODdmOTgzZjQ5ZDgwMDM3YmVlMDEyNWY0MzFmOGUwMjQzYzdhYjc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2UgUGVyY2hlcyA8am9lQHBlcmNoZXMuY29tPgpEYXRlOiBU aHUsIDIwIERlYyAyMDE4IDIzOjUwOjQ4IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0gY2lmczogY2hl Y2sga3phbGxvYyByZXR1cm4KCmt6YWxsb2MgY2FuIHJldHVybiBOVUxMIHNvIGFuIGFkZGl0aW9u YWwgY2hlY2sgaXMgbmVlZGVkLiBXaGlsZSB0aGVyZQppcyBhIGNoZWNrIGZvciByZXRfYnVmIHRo ZXJlIGlzIG5vIGNoZWNrIGZvciB0aGUgYWxsb2NhdGlvbiBvZgpyZXRfYnVmLT5jcmZpZC5maWQg LSB0aGlzIGNoZWNrIGlzIHRodXMgYWRkZWQuIEJvdGggY2FsbC1zaXRlcwpvZiB0Y29uSW5mb0Fs bG9jKCkgY2hlY2sgZm9yIE5VTEwgcmV0dXJuIG9mIHRjb25JbmZvQWxsb2MoKQpzbyByZXR1cm5p bmcgTlVMTCBvbiBmYWlsdXJlIG9mIGt6YWxsb2MoKSBoZXJlIHNlZW1zIGFwcHJvcHJpYXRlLgpB cyB0aGUga3phbGxvYygpIGlzIHRoZSBvbmx5IHRoaW5nIGhlcmUgdGhhdCBjYW4gZmFpbCBpdCBp cwptb3ZlZCB0byB0aGUgYmVnaW5uaW5nIHNvIGFzIG5vdCB0byBpbml0aWFsaXplIG90aGVyIHJl c291cmNlcwpvbiBmYWlsdXJlIG9mIGt6YWxsb2MuCgpGaXhlczogM2Q0ZWY5YTE1MzQzICgic21i MzogZml4IHJlZHVuZGFudCBvcGVucyBvbiByb290IikKLS0tCgpQcm9ibGVtIGxvY2F0ZWQgd2l0 aCBhbiBleHBlcmltZW50YWwgY29jY2luZWxsZSBzY3JpcHQKCldoaWxlIGF0IGl0IG1ha2UgY2hl Y2twYXRjaCBoYXBweSBieSB1c2luZyAqcmV0X2J1Zi0+Y3JmaWQuZmlkCnJhdGhlciB0aGFuIHN0 cnVjdCBjaWZzX2ZpZC4KClNpZ25lZC1vZmYtYnk6IEpvZSBQZXJjaGVzIDxqb2VAcGVyY2hlcy5j b20+ClJlcG9ydGVkLWJ5OiBOaWNob2xhcyBNYyBHdWlyZSA8aG9mcmF0QG9zYWRsLm9yZz4KUmV2 aWV3ZWQtYnk6IE5pY2hvbGFzIE1jIEd1aXJlIDxob2ZyYXRAb3NhZGwub3JnPgotLS0KIGZzL2Np ZnMvbWlzYy5jIHwgMzQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2ZzL2NpZnMvbWlzYy5jIGIvZnMvY2lmcy9taXNjLmMKaW5kZXggMTEzOTgwZGJhNGQ4Li5iZWUy MDMwNTViMzAgMTAwNjQ0Ci0tLSBhL2ZzL2NpZnMvbWlzYy5jCisrKyBiL2ZzL2NpZnMvbWlzYy5j CkBAIC0xMTEsMjEgKzExMSwyNyBAQCBzdHJ1Y3QgY2lmc190Y29uICoKIHRjb25JbmZvQWxsb2Mo dm9pZCkKIHsKIAlzdHJ1Y3QgY2lmc190Y29uICpyZXRfYnVmOwotCXJldF9idWYgPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgY2lmc190Y29uKSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKHJldF9idWYpIHsK LQkJYXRvbWljX2luYygmdGNvbkluZm9BbGxvY0NvdW50KTsKLQkJcmV0X2J1Zi0+dGlkU3RhdHVz ID0gQ2lmc05ldzsKLQkJKytyZXRfYnVmLT50Y19jb3VudDsKLQkJSU5JVF9MSVNUX0hFQUQoJnJl dF9idWYtPm9wZW5GaWxlTGlzdCk7Ci0JCUlOSVRfTElTVF9IRUFEKCZyZXRfYnVmLT50Y29uX2xp c3QpOwotCQlzcGluX2xvY2tfaW5pdCgmcmV0X2J1Zi0+b3Blbl9maWxlX2xvY2spOwotCQltdXRl eF9pbml0KCZyZXRfYnVmLT5jcmZpZC5maWRfbXV0ZXgpOwotCQlyZXRfYnVmLT5jcmZpZC5maWQg PSBremFsbG9jKHNpemVvZihzdHJ1Y3QgY2lmc19maWQpLAotCQkJCQkgICAgIEdGUF9LRVJORUwp OwotCQlzcGluX2xvY2tfaW5pdCgmcmV0X2J1Zi0+c3RhdF9sb2NrKTsKLQkJYXRvbWljX3NldCgm cmV0X2J1Zi0+bnVtX2xvY2FsX29wZW5zLCAwKTsKLQkJYXRvbWljX3NldCgmcmV0X2J1Zi0+bnVt X3JlbW90ZV9vcGVucywgMCk7CisKKwlyZXRfYnVmID0ga3phbGxvYyhzaXplb2YoKnJldF9idWYp LCBHRlBfS0VSTkVMKTsKKwlpZiAoIXJldF9idWYpCisJCXJldHVybiBOVUxMOworCXJldF9idWYt PmNyZmlkLmZpZCA9IGt6YWxsb2Moc2l6ZW9mKCpyZXRfYnVmLT5jcmZpZC5maWQpLCBHRlBfS0VS TkVMKTsKKwlpZiAoIXJldF9idWYtPmNyZmlkLmZpZCkgeworCQlrZnJlZShyZXRfYnVmKTsKKwkJ cmV0dXJuIE5VTEw7CiAJfQorCisJYXRvbWljX2luYygmdGNvbkluZm9BbGxvY0NvdW50KTsKKwly ZXRfYnVmLT50aWRTdGF0dXMgPSBDaWZzTmV3OworCSsrcmV0X2J1Zi0+dGNfY291bnQ7CisJSU5J VF9MSVNUX0hFQUQoJnJldF9idWYtPm9wZW5GaWxlTGlzdCk7CisJSU5JVF9MSVNUX0hFQUQoJnJl dF9idWYtPnRjb25fbGlzdCk7CisJc3Bpbl9sb2NrX2luaXQoJnJldF9idWYtPm9wZW5fZmlsZV9s b2NrKTsKKwltdXRleF9pbml0KCZyZXRfYnVmLT5jcmZpZC5maWRfbXV0ZXgpOworCXNwaW5fbG9j a19pbml0KCZyZXRfYnVmLT5zdGF0X2xvY2spOworCWF0b21pY19zZXQoJnJldF9idWYtPm51bV9s b2NhbF9vcGVucywgMCk7CisJYXRvbWljX3NldCgmcmV0X2J1Zi0+bnVtX3JlbW90ZV9vcGVucywg MCk7CisKIAlyZXR1cm4gcmV0X2J1ZjsKIH0KIAotLSAKMi4xNy4xCgo= --0000000000000f081a057d81ddf8--