Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp1561161ybg; Thu, 4 Jun 2020 12:54:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyWSWQ0WUNJ9zR2voC+o/hX2rkI4jqZ+/kRQ94bEDoSAme3CuE/Ye/+IHJ0bBcl7PrUGxor X-Received: by 2002:aa7:c598:: with SMTP id g24mr6170797edq.132.1591300441400; Thu, 04 Jun 2020 12:54:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591300441; cv=none; d=google.com; s=arc-20160816; b=MwANQsGKUT3gWLI4JmqjYob/xndLp76qm3/0ARfHhStTR612Rm+7RPdPScT4BPchau xEJVTHy3IbM2ytRCerINC8uArDLzVN7s3mAY2gWreqyFGX+CtoOk8/zXMWEvq/R80FEs Y15BxHdG25jtl6p6c7817fCY9g5ZFpWkadpUNs0lOOd3Ox7ypk1dG7wXXxITv89dDsbF sgNhm7D8rsYPCBnz6oPhOFlXFouIYVMTrGyBZo+IoIx+6vRjsV1xNFVcn1Uq4uTLHYgC TmyDmnO+ApEuOSz0iQqA7C/QLBsPzV2zULRaGSpBMThfQU7mY4ShpECF3sa/nis7OyUh PBxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:subject:autocrypt:from:references:cc:to:reply-to; bh=e7/w2NxuGsJDOKyH7Ce9iZKJqnhDXepkq9OXCeLBAeY=; b=wJhRyy8wIJNzqBU4kB9MhY6z+W8N2PXwP0rk+MveJV0IJdf09Ysx1ittVtaoE/xpST Fn3bIKOM/smQfJ4IbFVR2Z+duFwcIdO3cXbZxGbRnMQHq1gNuhHOVAmsE3q0MUAUPQs1 yM6CioPaGSrBDVnNcxj1tZ1HxP72m4yrtvtm8u0Z3GgnwkEW+oslGi/KK6RHUGpRzpND XFtlHcGGnQk3PM/qVj468fPX8AtOYkNQY6BboEXOAqkpfTWqKndrspw9Gs77ne+b3bIF 1Gsfj810DrAhQg9fjkUzZ4nj8iXvUJyjR33HeSJ2y3T5NknCbndE4fvO1ga7vVDG8FF8 6AFw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p9si2117475ejm.658.2020.06.04.12.53.38; Thu, 04 Jun 2020 12:54:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729559AbgFDPjp (ORCPT + 99 others); Thu, 4 Jun 2020 11:39:45 -0400 Received: from mail-lj1-f195.google.com ([209.85.208.195]:39479 "EHLO mail-lj1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729552AbgFDPjp (ORCPT ); Thu, 4 Jun 2020 11:39:45 -0400 Received: by mail-lj1-f195.google.com with SMTP id a9so4324430ljn.6 for ; Thu, 04 Jun 2020 08:39:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:to:cc:references:from:autocrypt:subject :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=e7/w2NxuGsJDOKyH7Ce9iZKJqnhDXepkq9OXCeLBAeY=; b=ByXhPqCcRRHZXuuKLen8KIPFDMqMDblh2QJggu2EQDLBfHoZERfgKgX09AGMN7mzt/ 8kRoEZd+flsFbtTaeqrFlryZTPcjefwxzbrQYes71T5pYFnyR/QDaCbUK1e7upxPgaen +BOQTaSj1eIVtSTCGONhjXDEAFBqs13olG1Xc6Y7ZHeNxY/l2e5KJMDsLnF9YO11tSH0 RnNRZg4D2Gm4LWNngtvDwg/RN++q0AHFtiwJ8G7CTahg3Q5i7W5i8LC9fMtjSulXSjM1 I262uOBBhLdwLnqkhJkdJyy2WIjvkS4tL1yxb0BDa1XBnT9G8FGE4JxJfNPGFYoat0Za DRaA== X-Gm-Message-State: AOAM532DDMgW4V7RwD/Rzxc1gQbsWZUvxUjA0mP2K5fGtzFZINCg+Nzu hWijjqVxaPACP/rwx4iLEuABKNhc X-Received: by 2002:a2e:9e88:: with SMTP id f8mr256763ljk.193.1591285182802; Thu, 04 Jun 2020 08:39:42 -0700 (PDT) Received: from [10.68.32.147] (broadband-37-110-38-130.ip.moscow.rt.ru. [37.110.38.130]) by smtp.gmail.com with ESMTPSA id i8sm2477lfl.72.2020.06.04.08.39.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 04 Jun 2020 08:39:42 -0700 (PDT) Reply-To: efremov@linux.com To: Julia Lawall Cc: cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org References: <20200604140805.111613-1-efremov@linux.com> From: Denis Efremov Autocrypt: addr=efremov@linux.com; keydata= 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 Subject: Re: [PATCH] coccinelle: api: add kzfree script Message-ID: Date: Thu, 4 Jun 2020 18:39:41 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/4/20 5:15 PM, Julia Lawall wrote: > Did you try ... here but find that some subexpressions of E could be > modified in between? Yes, I tried to use "... when != E = E1 when != &E" and results were bad. Now, I've tried forall and when strict. Here are examples: // forall added // Works well, suitable for v2. One additional catch in w1 driver. @r depends on !patch && !(file in "lib/test_kasan.c") && !(file in "mm/slab_common.c") forall@ expression *E; // pointer. Results are equal as if we use E. position p; @@ * memset(E, 0, ...); ... when != E // Is it enough to match &E, E = E1? * kfree(E)@p; //no forall, when strict //results are bad, too many false positives @r depends on !patch && !(file in "lib/test_kasan.c") && !(file in "mm/slab_common.c")@ expression *E; position p; @@ * memset(E, 0, ...); ... when != E // E is not enough here when strict * kfree(E)@p; I guess that the difference is that "forall" requires that whole pattern should occur on every path, "when strict" states that kfree should be called on every path after memset. This results in missed uses of E in loops and under conditions. How can I state in this case that E should not occur at all (in all paths) in between memset, kfree even as a subexpression? // Doesn't work well ... when != E when != if (...) { ... E ... } when != for(...;...;...) { ... E ... } Regards, Denis