Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp599131ybb; Wed, 25 Mar 2020 06:09:05 -0700 (PDT) X-Google-Smtp-Source: ADFU+vszxgTgG9jfLYlkqMAq2UA43iBlFckSWbidPq+HSGIClSqVS4Qxf+Cs3nT/AchG1jwKBJMO X-Received: by 2002:aca:4bd3:: with SMTP id y202mr2310496oia.7.1585141744991; Wed, 25 Mar 2020 06:09:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1585141744; cv=pass; d=google.com; s=arc-20160816; b=DsrNmh1uOAOB+0bdPhv4dmKDX9ddBzy9PoMiVqyJXHMUIcN9ZZ3rrlelSrgoY/oI7p xym7eFzNtwHUpqLjIBX01j95GGSQkxV5RsdTVfOZLCsy8cFEfkseSla4tk0sbBbSABU3 yKOmQQsBYkaMdfptHYRJuUB9Iy/JyolVArMdKTnjy9ZYOtu2xwjm27PFr64Uo7LJW1+h k2Clrsz48qpKor1knMrJvAUuddJjUUnRtkRmkRrE2P4javbGid5BBqphKj1ypQ/OJD41 TAcxmZYZjS0xsIiun/l/rBpCPx6ZYwPPe0vQ3n9NsZhrILYsBwdV8DUnULqL/koIYq+6 1OPg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-language :content-transfer-encoding:in-reply-to:user-agent:date:message-id :from:references:to:subject:dkim-signature; bh=dOxNvilnHznOlLSFz3cUUZVaeWXYT15Uz3u7DtFu4Xs=; b=KX3BJOdXtVczKeKub5lxa2Ph+cqy66YPqTBcTAP8Mc+h6ARK+YGByi93cEKXhbW0zn a10oXEn/f3PJNQVNi+tebdoRTjdqUljILcRgyG/OPpGeI+QKCKa0zdaUUw3P79iBTtv9 5ZQzoCOzXCIeJz6mZX//NZB0PiNVyEpjpePOZdm2mNYdcCiuPlcG+XWg5etZumSQE0dc TAXkOldvXlJpUhFSpfvEvNPafnfqlobfELPA/1W/jT2o4LmgkIMVa866eZZtTdk3IQCx PA7TWB1hII3fxVL30ZUrhEKz3a3maF8GIRu5Hju/d2qU4RqRnd2SWcxCYJlMu1AUOeFY vyEQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@windriversystems.onmicrosoft.com header.s=selector2-windriversystems-onmicrosoft-com header.b=fuBCG49b; arc=pass (i=1 spf=pass spfdomain=windriver.com dkim=pass dkdomain=windriver.com dmarc=pass fromdomain=windriver.com); 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v126si10698419oia.106.2020.03.25.06.08.50; Wed, 25 Mar 2020 06:09:04 -0700 (PDT) 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=@windriversystems.onmicrosoft.com header.s=selector2-windriversystems-onmicrosoft-com header.b=fuBCG49b; arc=pass (i=1 spf=pass spfdomain=windriver.com dkim=pass dkdomain=windriver.com dmarc=pass fromdomain=windriver.com); 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727416AbgCYNGI (ORCPT + 99 others); Wed, 25 Mar 2020 09:06:08 -0400 Received: from mail-eopbgr750054.outbound.protection.outlook.com ([40.107.75.54]:38613 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727046AbgCYNGH (ORCPT ); Wed, 25 Mar 2020 09:06:07 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ma6s26joFKJxeQHe4sjATZ89a//jU0fRhen/theLf/HXcVrJ2Lmy+wvbISwoP2tm9al65SFEZLLLMdyqN7wZryUvWV57XfHWiAIObF2RadT+7q7BCPYiV+0oUXd88A3KTdwLvnfj98JZbZL36KeoL8y8tw/YEhWWjU+u+db3EU8npjovCwVO8+mSk12c3iaJcOjYa6HsKfCOxVdLOhrijodeVyYSaoeXDI99AEiF5ZgKxyGbQiwvTgQgBgvr8dPHQoCNaeD6Gx1FEqVBTdTf1tBZfXH4RWdMhCZx58b3v6xSWwTlmnhIhUzO3W0YC72et7IrUtnAmM+rvVYX3mHlnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dOxNvilnHznOlLSFz3cUUZVaeWXYT15Uz3u7DtFu4Xs=; b=AH+q8bHmTTOSlcyBHKgbC1C4tOD3htdM8WDSgH+5YlPb1LHwwMW/WQY8tdgV+aQ6y0V6dfCuYpxWN7Nm71UW3+PerXLzfFYMX2AHXwYmRJEGJgT/QD3qBNh2AZaLm3GXkdyBFRBR0fTgNIKa0x5+KWTtRrxXj6DMxrvXAXt4hT0yPhrIZFNNMVtkXnrg+N9xg9bAxBaHzoh+n7UEyDT+HG7a2Sy6Z5I3i+ujUhQkJKYtNvdnbFa6AA8VnwKvIGGx23emG8++mvj3R87Sb1tBKHp5m1cRKtnpdNkBZqAcXUn0IlfRnOI2x0Pcn7ley0BF5L+74rJnv+sj19MjdkZP2A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=windriver.com; dmarc=pass action=none header.from=windriver.com; dkim=pass header.d=windriver.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=windriversystems.onmicrosoft.com; s=selector2-windriversystems-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dOxNvilnHznOlLSFz3cUUZVaeWXYT15Uz3u7DtFu4Xs=; b=fuBCG49btW7xM72zWRk4fahET8xdg9wrRJ5MgUZnABB7b10o2vONdTUXXjGVJUx614i1DKDQlFn6nWYYnS7nSHgqdKAMAZWdfUFSlFvNsaDST9W6NDPfJEPE8s+YM87lWjsJkM2fKL0WiQXXD1oVzXmROSr5+n+0WiRTg3bQgGQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Zhe.He@windriver.com; Received: from SN6PR11MB3360.namprd11.prod.outlook.com (2603:10b6:805:c8::30) by SN6PR11MB2749.namprd11.prod.outlook.com (2603:10b6:805:5f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.22; Wed, 25 Mar 2020 13:05:54 +0000 Received: from SN6PR11MB3360.namprd11.prod.outlook.com ([fe80::d852:181d:278b:ba9d]) by SN6PR11MB3360.namprd11.prod.outlook.com ([fe80::d852:181d:278b:ba9d%5]) with mapi id 15.20.2835.021; Wed, 25 Mar 2020 13:05:54 +0000 Subject: Re: [PATCH v3] tools lib traceevent: Take care of return value of asprintf To: rostedt@goodmis.org, acme@redhat.com, tstoyanov@vmware.com, hewenliang4@huawei.com, linux-kernel@vger.kernel.org References: <1582163930-233692-1-git-send-email-zhe.he@windriver.com> From: He Zhe Message-ID: <5f7589c3-323d-1a5c-685c-9becd87a690b@windriver.com> Date: Wed, 25 Mar 2020 21:05:46 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 In-Reply-To: <1582163930-233692-1-git-send-email-zhe.he@windriver.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Content-Language: en-US X-ClientProxiedBy: HK2PR06CA0010.apcprd06.prod.outlook.com (2603:1096:202:2e::22) To SN6PR11MB3360.namprd11.prod.outlook.com (2603:10b6:805:c8::30) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [128.224.162.175] (60.247.85.82) by HK2PR06CA0010.apcprd06.prod.outlook.com (2603:1096:202:2e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.18 via Frontend Transport; Wed, 25 Mar 2020 13:05:52 +0000 X-Originating-IP: [60.247.85.82] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1642cb58-4ee1-4b9d-98d1-08d7d0bd402a X-MS-TrafficTypeDiagnostic: SN6PR11MB2749: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:644; X-Forefront-PRVS: 0353563E2B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(396003)(366004)(39850400004)(136003)(346002)(376002)(6486002)(36756003)(316002)(66556008)(956004)(86362001)(66946007)(31696002)(6666004)(66476007)(6706004)(53546011)(2616005)(8676002)(2906002)(16576012)(31686004)(8936002)(186003)(16526019)(5660300002)(52116002)(478600001)(81156014)(81166006)(26005)(78286006);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR11MB2749;H:SN6PR11MB3360.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords; Received-SPF: None (protection.outlook.com: windriver.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rJHUTLUsfegHv5UWAZtr8Vq/hIGT/j1/Nmd5k+wTHjaBrmny3/M949AHgVr/n67AeqpLge7ftb//nYOAVYJmDVy0ANVQfX2KDAo/fBxqMbsGiVXns/kZYZipZgnLprRfN7gMxJCFmN7/u4zbyY5NrA5wEh0Oj5ansWeAUxs6cv9eFa+FMYhoRGpZVabL3iMNUX71EeiIONECwYj/hk/whSR1CleIg7Cktcg9Fd66jY95UPN6eNtR8l6sx1khXYQ6j98ZGRN3TTc2yJ/jQ89NQySavWXqg2u0pfVtNTjEFJwvsFpA7RiuJWs6GkFKNJJZc9xKMfD6ls9fnfxINvxAqWErIrYl4j9sBHXGChWKczNbhMyqpUUL7jfoey6gW2cyC4SgR7yXwiQkGnXoG8e/oRuoiE3/v5jCZ1lbTvDUruEVeQAhdD1unm7FzWzmNgZE4GIq0P11xIRDukSkvhqoRsJQM9PXRwxW4YHIow5NuUhRv01KrLTtAF9lUr3ER8APdh+bH43OfZwooxeOYG7NMujliujvhHOe5yAIUmrBXrc= X-MS-Exchange-AntiSpam-MessageData: 6+enaFpHU+sQB+myAAfGQT7bM7fqvvHw84m5s71mi/cgPDXvkeVfujdJ8fOARVHsNUoh6C4xiHN+EavBAZpi7ILsDqM9Uh4pfquRaY/3Oq2CtZ+lD6s17boSbaUgFH3zG9zRsYuD8m7xHmEwP4zZHQ== X-OriginatorOrg: windriver.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1642cb58-4ee1-4b9d-98d1-08d7d0bd402a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Mar 2020 13:05:54.1603 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ddb2873-a1ad-4a18-ae4e-4644631433be X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2mKBOtiX3ISPSv8/sjOlvfKeCVSHrwZ9VxRz0yKEQhEvvtUkZeOMAZaDBOIOoYfWS+C7+QgIqz5uVHbF72V84g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2749 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Can this be considered for the moment? Thanks, Zhe On 2/20/20 9:58 AM, zhe.he@windriver.com wrote: > From: He Zhe > > According to the API, if memory allocation wasn't possible, or some other > error occurs, asprintf will return -1, and the contents of strp below are > undefined. > > int asprintf(char **strp, const char *fmt, ...); > > This patch takes care of return value of asprintf to make it less error > prone and prevent the following build warning. > > ignoring return value of ‘asprintf’, declared with attribute warn_unused_result [-Wunused-result] > > Signed-off-by: He Zhe > --- > v2: directly check the return value without saving to a variable > v3: as asked, not remove those that already save the return value > > tools/lib/traceevent/parse-filter.c | 29 +++++++++++++++++++---------- > 1 file changed, 19 insertions(+), 10 deletions(-) > > diff --git a/tools/lib/traceevent/parse-filter.c b/tools/lib/traceevent/parse-filter.c > index 20eed71..c271aee 100644 > --- a/tools/lib/traceevent/parse-filter.c > +++ b/tools/lib/traceevent/parse-filter.c > @@ -1958,7 +1958,8 @@ static char *op_to_str(struct tep_event_filter *filter, struct tep_filter_arg *a > default: > break; > } > - asprintf(&str, val ? "TRUE" : "FALSE"); > + if (asprintf(&str, val ? "TRUE" : "FALSE") < 0) > + str = NULL; > break; > } > } > @@ -1976,7 +1977,8 @@ static char *op_to_str(struct tep_event_filter *filter, struct tep_filter_arg *a > break; > } > > - asprintf(&str, "(%s) %s (%s)", left, op, right); > + if (asprintf(&str, "(%s) %s (%s)", left, op, right) < 0) > + str = NULL; > break; > > case TEP_FILTER_OP_NOT: > @@ -1992,10 +1994,12 @@ static char *op_to_str(struct tep_event_filter *filter, struct tep_filter_arg *a > right_val = 0; > if (right_val >= 0) { > /* just return the opposite */ > - asprintf(&str, right_val ? "FALSE" : "TRUE"); > + if (asprintf(&str, right_val ? "FALSE" : "TRUE") < 0) > + str = NULL; > break; > } > - asprintf(&str, "%s(%s)", op, right); > + if (asprintf(&str, "%s(%s)", op, right) < 0) > + str = NULL; > break; > > default: > @@ -2011,7 +2015,8 @@ static char *val_to_str(struct tep_event_filter *filter, struct tep_filter_arg * > { > char *str = NULL; > > - asprintf(&str, "%lld", arg->value.val); > + if (asprintf(&str, "%lld", arg->value.val) < 0) > + str = NULL; > > return str; > } > @@ -2069,7 +2074,8 @@ static char *exp_to_str(struct tep_event_filter *filter, struct tep_filter_arg * > break; > } > > - asprintf(&str, "%s %s %s", lstr, op, rstr); > + if (asprintf(&str, "%s %s %s", lstr, op, rstr) < 0) > + str = NULL; > out: > free(lstr); > free(rstr); > @@ -2113,7 +2119,8 @@ static char *num_to_str(struct tep_event_filter *filter, struct tep_filter_arg * > if (!op) > op = "<="; > > - asprintf(&str, "%s %s %s", lstr, op, rstr); > + if (asprintf(&str, "%s %s %s", lstr, op, rstr) < 0) > + str = NULL; > break; > > default: > @@ -2148,8 +2155,9 @@ static char *str_to_str(struct tep_event_filter *filter, struct tep_filter_arg * > if (!op) > op = "!~"; > > - asprintf(&str, "%s %s \"%s\"", > - arg->str.field->name, op, arg->str.val); > + if (asprintf(&str, "%s %s \"%s\"", > + arg->str.field->name, op, arg->str.val) < 0) > + str = NULL; > break; > > default: > @@ -2165,7 +2173,8 @@ static char *arg_to_str(struct tep_event_filter *filter, struct tep_filter_arg * > > switch (arg->type) { > case TEP_FILTER_ARG_BOOLEAN: > - asprintf(&str, arg->boolean.value ? "TRUE" : "FALSE"); > + if (asprintf(&str, arg->boolean.value ? "TRUE" : "FALSE") < 0) > + str = NULL; > return str; > > case TEP_FILTER_ARG_OP: