From patchwork Tue Jan 12 18:12:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Manuel Bouyer X-Patchwork-Id: 12014425 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F2D7C433E6 for ; Tue, 12 Jan 2021 18:19:34 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DC91E2311A for ; Tue, 12 Jan 2021 18:19:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DC91E2311A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=antioche.eu.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.65879.116845 (Exim 4.92) (envelope-from ) id 1kzOGM-0005Hn-Ct; Tue, 12 Jan 2021 18:19:26 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 65879.116845; Tue, 12 Jan 2021 18:19:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kzOGL-0005H7-TK; Tue, 12 Jan 2021 18:19:25 +0000 Received: by outflank-mailman (input) for mailman id 65879; Tue, 12 Jan 2021 18:19:24 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kzOCU-0003Yo-1F for xen-devel@lists.xenproject.org; Tue, 12 Jan 2021 18:15:26 +0000 Received: from isis.lip6.fr (unknown [2001:660:3302:283c::2]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id fdf72f1a-0319-4c0d-bea6-1d6a95af51c8; Tue, 12 Jan 2021 18:13:59 +0000 (UTC) Received: from asim.lip6.fr (asim.lip6.fr [132.227.86.2]) by isis.lip6.fr (8.15.2/8.15.2) with ESMTP id 10CIDw4Z001664; Tue, 12 Jan 2021 19:13:58 +0100 (CET) Received: from armandeche.soc.lip6.fr (armandeche [132.227.63.133]) by asim.lip6.fr (8.15.2/8.14.4) with ESMTP id 10CIDupY004943; Tue, 12 Jan 2021 19:13:56 +0100 (MET) Received: by armandeche.soc.lip6.fr (Postfix, from userid 20331) id A3A897218; Tue, 12 Jan 2021 19:13:56 +0100 (MET) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: fdf72f1a-0319-4c0d-bea6-1d6a95af51c8 From: Manuel Bouyer To: xen-devel@lists.xenproject.org Cc: Manuel Bouyer , Ian Jackson , Wei Liu Subject: [PATCH] xenpmd.c: use dynamic allocation Date: Tue, 12 Jan 2021 19:12:41 +0100 Message-Id: <20210112181242.1570-21-bouyer@antioche.eu.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210112181242.1570-1-bouyer@antioche.eu.org> References: <20210112181242.1570-1-bouyer@antioche.eu.org> MIME-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (isis.lip6.fr [132.227.60.2]); Tue, 12 Jan 2021 19:13:58 +0100 (CET) X-Scanned-By: MIMEDefang 2.78 on 132.227.60.2 From: Manuel Bouyer On NetBSD, d_name is larger than 256, so file_name[284] may not be large enough (and gcc emits a format-truncation error). Use asprintf() instead of snprintf() on a static on-stack buffer. Signed-off-by: Manuel Bouyer Reviewed-by: Ian Jackson --- tools/xenpmd/xenpmd.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/xenpmd/xenpmd.c b/tools/xenpmd/xenpmd.c index 12b82cf43e..e432aad856 100644 --- a/tools/xenpmd/xenpmd.c +++ b/tools/xenpmd/xenpmd.c @@ -101,7 +101,7 @@ FILE *get_next_battery_file(DIR *battery_dir, { FILE *file = 0; struct dirent *dir_entries; - char file_name[284]; + char *file_name; int ret; do @@ -112,16 +112,16 @@ FILE *get_next_battery_file(DIR *battery_dir, if ( strlen(dir_entries->d_name) < 4 ) continue; if ( battery_info_type == BIF ) - ret = snprintf(file_name, sizeof(file_name), BATTERY_INFO_FILE_PATH, + ret = asprintf(&file_name, BATTERY_INFO_FILE_PATH, dir_entries->d_name); else - ret = snprintf(file_name, sizeof(file_name), BATTERY_STATE_FILE_PATH, + ret = asprintf(&file_name, BATTERY_STATE_FILE_PATH, dir_entries->d_name); /* This should not happen but is needed to pass gcc checks */ if (ret < 0) continue; - file_name[sizeof(file_name) - 1] = '\0'; file = fopen(file_name, "r"); + free(file_name); } while ( !file ); return file;