From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:59036 "EHLO mx0a-00069f02.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235142AbhHDHFr (ORCPT ); Wed, 4 Aug 2021 03:05:47 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : content-type : in-reply-to : mime-version; s=corp-2021-07-09; bh=zoW1EkSo+s+Wy3izl0Dgl8OIIlgIHmePHuq6fiSuTeE=; b=ZKjZgmDcwqJ1sjSFroX8ZedCZQB8GSj3LXnUkuhdKx3sFbb+qDCyz00MbTt9B6m50nsc L61z8vrNlzfRTnBBZ+Mjaw+d9nEWIbMylYLq3gDoyvRKmORJ7pdtireQQEVRpF2Nngpg 0vjxKQRWgTpskw0O9PWaRJRSop3lYz7w1a1GS1xvUgcLog0GF2Is7df766r5NFJfllg6 Xx8iCIVvNZabEwFnZLdWmiMk5djYhdgwESSFklcLqvLYOGi+Cn1V+JKOXX3VJFy9UpBr /Or4AdfCk7uyc/9GpjQTND5MBv2C/JpJtAcoa5HwGGzwJ6BCKgEVRJG9PDXCq3IbEVxD LA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : references : content-type : in-reply-to : mime-version; s=corp-2020-01-29; bh=zoW1EkSo+s+Wy3izl0Dgl8OIIlgIHmePHuq6fiSuTeE=; b=E48BzBS8UAyL47S8HFUPlIXMh0l39gl7+4iItcD7rVDlmEFGJoWMBwUDXuB4IqdWW2fA 9G/pmxAKLtxmHhifbCPd4+d9W6EQHBhC0VKqGO3CaF43Ihl1jsWRWWj/d223590jOlBg XW6VZsqPG/v3olQToVS5fzYpxIkxxI+8T9D41u45AZtC5WUUHf87bJib+kJF0CID6e6R ngC0m/bi11e2N3jTISPfb2AwtLijZlcGxLvnc81FN/fXlLACc1vBN1i17v+3wEZ843x6 bJx4ThOBaDXOlCdZ15MVVwiTGzWkJXhOZb33/LOIRElj9QM/bt/+NiFpXB2mvMwz95/v ng== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zoW1EkSo+s+Wy3izl0Dgl8OIIlgIHmePHuq6fiSuTeE=; b=uCavX9Xd0idRX0PifLUQeUmLeKqDV1lKSI1K18CMqVBoHls7zyu02sGN/m2bjUD/jGzI4LsaHNtN6+zfP8lxDqV2/RrLPGtUhKh5HqWEDohWRP6yjOChMnHLyJxbfGVCHOYtc4cVzQJWQmGw+dXx+rRqldhpyxwoXloCJVJj1xY= Date: Wed, 4 Aug 2021 10:05:11 +0300 From: Dan Carpenter Subject: Re: [PATCH] check_netdev_priv: warn about using netdev priv data after free_netdev Message-ID: <20210804070511.GB22532@kadam> References: <20210802210022.5226-1-paskripkin@gmail.com> <20210803150826.GC1931@kadam> <41b1499c-3715-30df-b083-159c7d71efcb@gmail.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <41b1499c-3715-30df-b083-159c7d71efcb@gmail.com> MIME-Version: 1.0 List-ID: To: Pavel Skripkin Cc: smatch@vger.kernel.org On Tue, Aug 03, 2021 at 07:03:59PM +0300, Pavel Skripkin wrote: > Hi, Dan! > > On 8/3/21 6:08 PM, Dan Carpenter wrote: > > Thanks Pavel! > > > > It looks really nice. I've applied it. I'll test it tonight and push > > tomorrow. > > > > I don't see any major issues with the check at all, but I have a few > > comments below. > > > > On Tue, Aug 03, 2021 at 12:00:22AM +0300, Pavel Skripkin wrote: > > > +static void match_free_netdev(const char *fn, struct expression *expr, void *_arg_no) > > > +{ > > > + struct expression *arg; > > > + const char *name; > > > + > > > + arg = get_argument_from_call_expr(expr->args, PTR_INT(_arg_no)); > > > + if (!arg) > > > + return; > > > + > > > + name = expr_to_var(arg); > > > + if (!name) > > > + return; > > > + > > > + set_state(my_id, name, NULL, &freed); > > > +} > > > > There is a new param_key API which would make this function shorter. > > > > static void free_netdev(struct expression *expr, const char *name, struct symbol *sym, void *data) > > { > > set_state(my_id, name, NULL, &freed); > > } > > > > Then in the register function you'd add a hooks like this: > > > > add_function_param_key_hook("free_netdev", &free_netdev, 0, "$", NULL); > > add_function_param_key_hook("free_candev", &free_netdev, 0, "$", NULL); > > > > I guess, I missed that API, sorry :( Next time I will use it instead. It's new, I wouldn't have expected anyone to be aware of it yet. But it's really nice. regards, dan carpenter