Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp2125874yba; Wed, 3 Apr 2019 01:41:28 -0700 (PDT) X-Google-Smtp-Source: APXvYqz5k0wU8wLjviJF2Bm6Yz1NnfPD+4IBQBekqtkW+g7U4P/4uzeY6yeVeeWsGTAE41qHB0U9 X-Received: by 2002:a63:c706:: with SMTP id n6mr38078083pgg.310.1554280888033; Wed, 03 Apr 2019 01:41:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554280888; cv=none; d=google.com; s=arc-20160816; b=FgO41H9rJBykCKTvJPKGJLAyJNqiRarilxvymcYv5JqJI49PiEXM9zmCk4Nyq7QckR aWF5hRdvUKljnw5RLjymgauqZKsoNjvo9CppuXAL+5JPwtrmqw+d8247Ly2UUmVyTRCA 3w+i51rQbVR2gFMfyUQ3PrJMhw88xTdgrpyzhdg1WCmv2bTRKEcsF03uJ6gjA3zdJBrT wt0AM/NuOaJwA2EmIEybPbBTqm/gQt0EmDGyIvlWBzZ6+pSK8SC0lzQAz9HMnHqACXUs 6h4kTfIB7MYYXZnY3hLET5qEeRMUhp+DWL2mlVJxGgFMk49gGDnWEuj7+Wvymxc3yODc 7m5Q== 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:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ecC151pDaVmzMAtmj6j4LZHdgySbMEGj2xBocwOX5IY=; b=YloEwvusXaN6jJ5pmnoyD7lv+B3R5WtIE6l3Euh69hDnoh8X48lDiInezTbHyNi/90 1sO9EJZkb+ZY9lAN56Au7Shc2AEZhyUmRwptZrUrVC3HmEZA8X7op1DiICwkt1kIUlPk MbmWYD+rtIsKYO3a/+o3KmE/5u4KvXtWcQUtC7V0q7nOUJ/J3h1qf9OQLO9InHkAFsco ttHzboexmj6G0nsmwU7j7U1NPE1XLcszyaDQuxSOYWosL8ADH6qG+egs+12OI7nyBGOl ZsKEW3khoxbJ1gIZ3MUXJJpHy1eMHA3jL4rWuf76ujKEMAnVb7asIEDv1b4dtqL+RqXi fZ/Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=Kzf9SYmI; 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 d30si13971415pld.82.2019.04.03.01.41.12; Wed, 03 Apr 2019 01:41:28 -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=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b=Kzf9SYmI; 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 S1726882AbfDCIjO (ORCPT + 99 others); Wed, 3 Apr 2019 04:39:14 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:51782 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729014AbfDCIjM (ORCPT ); Wed, 3 Apr 2019 04:39:12 -0400 Received: by mail-wm1-f67.google.com with SMTP id 4so6428930wmf.1 for ; Wed, 03 Apr 2019 01:39:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ecC151pDaVmzMAtmj6j4LZHdgySbMEGj2xBocwOX5IY=; b=Kzf9SYmIkhvFHsVSsrarA5IqJOh16o5tNXtlRUhkYKdC49zsRlPiVTkF4z5SsL7t1i KFebfJlXL+k/4YXs0QQQoFMRTjf6+JMDWO5TLWVHesIZcstbSwvqTAYfpKRoRaoIFTK/ 50ZDg2OArMYai+N7tFNPvAff7Dkb2441t1OuVIzHfTlksd2gUz+aSki8FJI8zdvGT2VF 6ViAPC5TENDp0c8WgYiWb4ULwmbeVIzJ7nVOTs+OaUSgyupYXFcDUafI9VNrXQ+9pOoF cUJpG32ddvh3DkYYudBspjUIh6eBF87xowz3th68TJfFBBBJpcrgdPyoeMT/RuaL5t32 undw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ecC151pDaVmzMAtmj6j4LZHdgySbMEGj2xBocwOX5IY=; b=J8oYDHuFYwJ0oJPwpUwRZSwxUAl8qkzcRH5Yq70+IpjuDr8etGr0A+S32FirFHR4lb JB9mx8NnuLTmEu/enQu1B+7OYsKErTtBimsNwxRLuoGji4IXCaFGGolEu7+5011vTY3+ k9ZLO5h7sJ+TeMQ99mJkbmC3AJZdg6abW9UUgB+oLJYaru1dhRMAF1tv0QA+u6RbY2kG xw8AFHAHYCqSS/Lgfbo9/jCqZxcCOaxVPEA3hZrWS2OqDO71n2axsD9xIu/UdJ3tLs0c +O2du80H/r8LlMIgOTAtMvGekdOH8ZKD7oshplGyaGKB74mEaLCO7ew3ACPyi9Ia5Mz6 jKrA== X-Gm-Message-State: APjAAAVEyk8kbT9SQMALgEwrDloCLjDzEvTci7azdqsS88Cviu8gPvGm AWWCEQvkhj+0+yxwxhL9oE4j05MjuBQ= X-Received: by 2002:a7b:c5d6:: with SMTP id n22mr1148929wmk.112.1554280750456; Wed, 03 Apr 2019 01:39:10 -0700 (PDT) Received: from localhost.localdomain (aputeaux-684-1-29-77.w90-86.abo.wanadoo.fr. [90.86.254.77]) by smtp.gmail.com with ESMTPSA id v192sm23655771wme.24.2019.04.03.01.39.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Apr 2019 01:39:09 -0700 (PDT) From: Bartosz Golaszewski To: Jeff Dike , Richard Weinberger , Anton Ivanov , Geert Uytterhoeven Cc: linux-um@lists.infradead.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [RESEND PATCH 2/4] um: remove uses of variable length arrays Date: Wed, 3 Apr 2019 10:39:00 +0200 Message-Id: <20190403083902.3975-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190403083902.3975-1-brgl@bgdev.pl> References: <20190403083902.3975-1-brgl@bgdev.pl> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bartosz Golaszewski While the affected code is run in user-mode, the build still warns about it. Convert all uses of VLA to dynamic allocations. Signed-off-by: Bartosz Golaszewski --- arch/um/os-Linux/umid.c | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/arch/um/os-Linux/umid.c b/arch/um/os-Linux/umid.c index 998fbb445458..e261656fe9d7 100644 --- a/arch/um/os-Linux/umid.c +++ b/arch/um/os-Linux/umid.c @@ -135,12 +135,18 @@ static int remove_files_and_dir(char *dir) */ static inline int is_umdir_used(char *dir) { - char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")]; - char pid[sizeof("nnnnn\0")], *end; + char pid[sizeof("nnnnn\0")], *end, *file; int dead, fd, p, n, err; + size_t filelen; - n = snprintf(file, sizeof(file), "%s/pid", dir); - if (n >= sizeof(file)) { + err = asprintf(&file, "%s/pid", dir); + if (err < 0) + return 0; + + filelen = strlen(file); + + n = snprintf(file, filelen, "%s/pid", dir); + if (n >= filelen) { printk(UM_KERN_ERR "is_umdir_used - pid filename too long\n"); err = -E2BIG; goto out; @@ -185,6 +191,7 @@ static inline int is_umdir_used(char *dir) out_close: close(fd); out: + free(file); return 0; } @@ -210,18 +217,21 @@ static int umdir_take_if_dead(char *dir) static void __init create_pid_file(void) { - char file[strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")]; - char pid[sizeof("nnnnn\0")]; + char pid[sizeof("nnnnn\0")], *file; int fd, n; - if (umid_file_name("pid", file, sizeof(file))) + file = malloc(strlen(uml_dir) + UMID_LEN + sizeof("/pid\0")); + if (!file) return; + if (umid_file_name("pid", file, sizeof(file))) + goto out; + fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644); if (fd < 0) { printk(UM_KERN_ERR "Open of machine pid file \"%s\" failed: " "%s\n", file, strerror(errno)); - return; + goto out; } snprintf(pid, sizeof(pid), "%d\n", getpid()); @@ -231,6 +241,8 @@ static void __init create_pid_file(void) errno); close(fd); +out: + free(file); } int __init set_umid(char *name) @@ -385,13 +397,19 @@ __uml_setup("uml_dir=", set_uml_dir, static void remove_umid_dir(void) { - char dir[strlen(uml_dir) + UMID_LEN + 1], err; + char *dir, err; + + dir = malloc(strlen(uml_dir) + UMID_LEN + 1); + if (!dir) + return; sprintf(dir, "%s%s", uml_dir, umid); err = remove_files_and_dir(dir); if (err) os_warn("%s - remove_files_and_dir failed with err = %d\n", __func__, err); + + free(dir); } __uml_exitcall(remove_umid_dir); -- 2.21.0