Received: by 2002:a05:6a10:413:0:0:0:0 with SMTP id 19csp2246798pxp; Mon, 21 Mar 2022 14:54:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxA8deSLMbC3Eiy6SiAj290XpwOT9PDk08V5q+pVoma0nognA75o510+UbvjxFbQ8+w+OB5 X-Received: by 2002:a62:e716:0:b0:4fa:652a:c334 with SMTP id s22-20020a62e716000000b004fa652ac334mr21846048pfh.2.1647899653721; Mon, 21 Mar 2022 14:54:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647899653; cv=none; d=google.com; s=arc-20160816; b=L1m7Y4DgD8+ItLKz13ofw49m1aPHdvI0HbXbyYizF8D9KtKxK8xnSTwrlSS1kpfHVF XhQW2HyJT2TIJeWJKuWw87SHCI0qeia/nHoT999W5H/9m//DVwk2s/ApiugiiEij4GuG ihfhd2VEjWmAUQhux10XnQKtARiiX40FsHmVLlhfeqr1w3xdHZh2yscOi3embwP4H5TK LRcGUf4FZc1P72nWM0EnyGhSGQyrz2jXXXLN5m6N4jS3jxEKu9RdBerxMJGYVmk9Nft7 Hy8+GjCk+/kPXTfwV/d0kDYPwowdAnDhryCUNHLvVX3s9xYoqcNpNxnugRgDzCkyzMvU NIsg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:subject:from :references:cc:to:dkim-signature; bh=4vB3vLBvRcKjKfgtWTOX9eVbtgZOrJ2AsHjIDSNYEF8=; b=Ez4iVzE5Sx4CBO08tNnz0M5u7oSmqG/Ew92IsuBh28SFxa75XvwpHUeD/8g9yt8F+N AZQ6zChFQGdv+7FfqUI8NmKp4GqLvORroyU4pH1a+lSQ8ixxZ+6mT1FcLLcWRUPi4Lj4 mfcs9itREZEtQUAjbhrWId9J/9FK4jMWObm+iIX9Wn2ZWvNpVda1Ug5Jz2Ui4jS7ANT6 vK8x+gP7sBMaQxjhlobv+oreSMuORk9MO4epETOU9jwTw1kBk8P5ydsQ1HOHURqXrMC5 NGrh65zXZy+mTGDJrEdsJzRK3J36FS1EFOI+ol+njgRirzRb0HDWF8JhmqPqmVkAXpBW E47A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=VSGkoowc; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id bf19-20020a656d13000000b003816043f15asi7663720pgb.847.2022.03.21.14.54.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Mar 2022 14:54:13 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=VSGkoowc; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 63B622BFAEE; Mon, 21 Mar 2022 14:21:10 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347618AbiCUNlH (ORCPT + 99 others); Mon, 21 Mar 2022 09:41:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345032AbiCUNlF (ORCPT ); Mon, 21 Mar 2022 09:41:05 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2D83710FE0 for ; Mon, 21 Mar 2022 06:39:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1647869978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4vB3vLBvRcKjKfgtWTOX9eVbtgZOrJ2AsHjIDSNYEF8=; b=VSGkoowcjzafZPDyNDsH9khvmzzeDJfhptqpgVtYu/fxa4qwUk8VCO+P4WdSHIAT9iG8pe //w6u8ZOILQrhAA8Ms19xS3d0nN6WINkkwhqcExeSTLZors5Mosl5vSZcIRR9IL36i3MsZ CCw/G9ofV0Lgqv7GxgkdIclS5uOS0T4= Received: from mail-qk1-f199.google.com (mail-qk1-f199.google.com [209.85.222.199]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-596-V6YgXvScObKoo_nRZZEsHw-1; Mon, 21 Mar 2022 09:39:37 -0400 X-MC-Unique: V6YgXvScObKoo_nRZZEsHw-1 Received: by mail-qk1-f199.google.com with SMTP id f11-20020a05620a20cb00b0067b3fedce10so9777771qka.15 for ; Mon, 21 Mar 2022 06:39:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:to:cc:references:from:subject:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=4vB3vLBvRcKjKfgtWTOX9eVbtgZOrJ2AsHjIDSNYEF8=; b=jl0ue/SbO2fYlNn64BRmzq3S558nrYNaXT2sn3g7wOaQKmb8sVhLAI5gH2FphGyvHu 4WsewNa/Wi7oWMs+yUC9V7lietsA7Oem52zXcznypETjhH6iFRpqnvEBRa9ks6JrExZN 2nLZc6P23sOlTg2EHKD6AfdqXYSHSzL1VcVw8igJUXINjkxxx68BI8TPWw0QHG8UPLkk MD1DSgkDOkHUEPF1xol3VnRfBlyJCQCL2GRsDTl9QVrpqc3eyK78jlv8c8Xq0ftNZ9kN /xtivA/Aq2YWLiDTiW83J5zEoXGGUsoNARGQFEvgOQcbPJWILyW5Qx484+cxYOIqkSnR UWxQ== X-Gm-Message-State: AOAM530zgw5n7eJSWWG3yNkbIZpB0XFv3k6bbjB0DBYy9L4r/N92rYCB aUvNAZMdyN0MMLrRM/Do58rRXL1rQgaFLGxqMZpWrdu3k0N2Wz/mW79biwz4V9pKhFviB2XFQEU cVcwp7MKJbjVATfJ9hCcyK7IJ X-Received: by 2002:a05:622a:4cb:b0:2e1:ce8c:f097 with SMTP id q11-20020a05622a04cb00b002e1ce8cf097mr16352333qtx.395.1647869976582; Mon, 21 Mar 2022 06:39:36 -0700 (PDT) X-Received: by 2002:a05:622a:4cb:b0:2e1:ce8c:f097 with SMTP id q11-20020a05622a04cb00b002e1ce8cf097mr16352307qtx.395.1647869976251; Mon, 21 Mar 2022 06:39:36 -0700 (PDT) Received: from [192.168.1.9] (pool-68-163-101-245.bstnma.fios.verizon.net. [68.163.101.245]) by smtp.gmail.com with ESMTPSA id e7-20020a37ac07000000b0067d7cd47af4sm7714115qkm.31.2022.03.21.06.39.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 21 Mar 2022 06:39:35 -0700 (PDT) To: trix@redhat.com, jpoimboe@redhat.com, jikos@kernel.org, mbenes@suse.cz, pmladek@suse.com, nathan@kernel.org, ndesaulniers@google.com Cc: live-patching@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev References: <20220320015143.2208591-1-trix@redhat.com> From: Joe Lawrence Subject: Re: [PATCH v2] livepatch: Reorder to use before freeing a pointer Message-ID: <3ee9826e-b770-d015-0251-e9770172d973@redhat.com> Date: Mon, 21 Mar 2022 09:39:34 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <20220320015143.2208591-1-trix@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,NICE_REPLY_A,RDNS_NONE,SPF_HELO_NONE, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/19/22 9:51 PM, trix@redhat.com wrote: > From: Tom Rix > > Clang static analysis reports this issue > livepatch-shadow-fix1.c:113:2: warning: Use of > memory after it is freed > pr_info("%s: dummy @ %p, prevented leak @ %p\n", > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > The pointer is freed in the previous statement. > Reorder the pr_info to report before the free. > > Similar issue in livepatch-shadow-fix2.c > > Signed-off-by: Tom Rix > --- > v2: Fix similar issue in livepatch-shadow-fix2.c > > samples/livepatch/livepatch-shadow-fix1.c | 2 +- > samples/livepatch/livepatch-shadow-fix2.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/samples/livepatch/livepatch-shadow-fix1.c b/samples/livepatch/livepatch-shadow-fix1.c > index 918ce17b43fda..6701641bf12d4 100644 > --- a/samples/livepatch/livepatch-shadow-fix1.c > +++ b/samples/livepatch/livepatch-shadow-fix1.c > @@ -109,9 +109,9 @@ static void livepatch_fix1_dummy_leak_dtor(void *obj, void *shadow_data) > void *d = obj; > int **shadow_leak = shadow_data; > > - kfree(*shadow_leak); > pr_info("%s: dummy @ %p, prevented leak @ %p\n", > __func__, d, *shadow_leak); > + kfree(*shadow_leak); > } > > static void livepatch_fix1_dummy_free(struct dummy *d) > diff --git a/samples/livepatch/livepatch-shadow-fix2.c b/samples/livepatch/livepatch-shadow-fix2.c > index 29fe5cd420472..361046a4f10cf 100644 > --- a/samples/livepatch/livepatch-shadow-fix2.c > +++ b/samples/livepatch/livepatch-shadow-fix2.c > @@ -61,9 +61,9 @@ static void livepatch_fix2_dummy_leak_dtor(void *obj, void *shadow_data) > void *d = obj; > int **shadow_leak = shadow_data; > > - kfree(*shadow_leak); > pr_info("%s: dummy @ %p, prevented leak @ %p\n", > __func__, d, *shadow_leak); > + kfree(*shadow_leak); > } > > static void livepatch_fix2_dummy_free(struct dummy *d) > Hi Tom, Ordering doesn't matter for the example, so let's clean up the static analysis. Acked-by: Joe Lawrence But for my sanity, isn't this a false positive? There shouldn't be harm in printing the pointer itself, even after what it points to has been freed, i.e. int *i = malloc(sizeof(*i)); free(i); printf("%p\n", i); << ok printf("%d\n", *i); << NOT ok But I suppose clang doesn't know that the passed pointer isn't getting dereferenced by the function, so it throws up a warning? Just curious what your experience has been with respect to these reports. Thanks, -- Joe