Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2072128imc; Tue, 12 Mar 2019 06:33:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqz3vAupFe+y95rVlUt1ozZ8I/gul6njV4Y1bJJF3jUSYX1eZb93iWUfI17wOI87myPoUQVl X-Received: by 2002:a63:e615:: with SMTP id g21mr8310638pgh.362.1552397636993; Tue, 12 Mar 2019 06:33:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552397636; cv=none; d=google.com; s=arc-20160816; b=iaHgIPT233tL6giFvD+QnjE4HLL2kqYQaL/0I4HqOSxUyyXQegWjZSihEgAJ+3+Guo BaJc+npLTGHfFeAp7yC/oL0hdUCbZ6mlPRzqm7nVa+LQ0p86euaVCTw6WxEraG28oRJB BLkrdFNBaxkWeUq8/0gWWKq+hacAiugv2UXPyRdZbtF1J0BfOoeC856j5pSmNSczAjdM O/UmrlXL0IbDhUIoyyHDfXovCTc1JAGwut1MhiiCHspn7w85MxQKOY4Mn4AOGtpCZstH vIEht5ITDaF/cqeVf8zu5JfsyI34b7/1JmTXfyZup8x3w3vBU+qil0+9Z+zHCXS0GmoJ /rVg== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=3QIFQocTUGRi3zH5QMDviZrJx7jR9iM8LInODOvNKNg=; b=gShzQTq/lzYAmkX2wThxQ5GnABwcUPqBrH1+BJuZKaro8Fk+I8WpMRCIhxGUpne7CS Z8WM7FSEygNeU6+TSPS4SeSDu5c5Oz7BYjAjIY0gzTA8ELLT850RPtbByQuDh6yCubxW 655TSknKWXPMuIfvyCXuglrJ38HTeoMiPcf06Sr+GVRnFybyiVLBOeX0MdJwiGJk2YuH X0Cju48s4+iQ+ouOth9sMnwxK3L1BtgFsGNrgZiaXP9lT8akKNGRcEcYVrP46Y2NYZtB UMJsrppdJ596kHoKQf5x0B/3mK3hIGMEROCYq03yGKJJVCvRCixAdrXgq/IZqyyypu9Y 30nA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bgdev-pl.20150623.gappssmtp.com header.s=20150623 header.b="wo874/+C"; 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 e9si7394459pgs.450.2019.03.12.06.33.39; Tue, 12 Mar 2019 06:33:56 -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="wo874/+C"; 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 S1726802AbfCLNaw (ORCPT + 99 others); Tue, 12 Mar 2019 09:30:52 -0400 Received: from mail-wm1-f68.google.com ([209.85.128.68]:39329 "EHLO mail-wm1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726521AbfCLNaw (ORCPT ); Tue, 12 Mar 2019 09:30:52 -0400 Received: by mail-wm1-f68.google.com with SMTP id t124so2602393wma.4 for ; Tue, 12 Mar 2019 06:30:50 -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:mime-version :content-transfer-encoding; bh=3QIFQocTUGRi3zH5QMDviZrJx7jR9iM8LInODOvNKNg=; b=wo874/+Csl+843lZ8Q25PESj1oWghoL6/zdckFhhIAXku6KT3/mVk6KqVfPwRzppbS IhgeORiHg5GQaNE02CxPxabvmVRZkJ+6Qo1bZsp/A+Djxyndw801RfXFVdawM6l4rFo/ 2D5C2WN35wCkf0aF7YUQNEkUzp7w5914lWLKTMAd08yxy89UAAZ2bnRUHHOb5KJZAJ5a n0CuMj82Y8WLvbbfOnxjbv3uxM9F7n1IEE0EHIf2lUAhkWyvMM6fcpFqaoji/+44/qxL A2+Hbtj5HiCnuRvULGpPuSRDoaT3ELCux0vcCGCYp7AdQ+O5ltC7vdvMZ5UQec927pS5 Hspg== 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:mime-version :content-transfer-encoding; bh=3QIFQocTUGRi3zH5QMDviZrJx7jR9iM8LInODOvNKNg=; b=TyTofsr9v5e4/Afu2ZkBD0UnisSY8Ifac1yhcXN2Wv2R7lz0j0IE745PB6dRYQn3lx fRwBERlxPGlvoxwEQkI2n/GYCYfBoL1a2a/DA/d3JR0oiml/ZTFrcRgcwKgf8z9ixbyg 8h+9JsIzlIdF9/P9ejb7gOShoHKKWVB6psjaI6TFOfyfccT36toWQ6Up7qOkkgAaVPDV 14OjHh9SwXzu8mvI03R4it+9NTEkuHwpXGM8B/OKpLT1euqphIh28G1bIZXKmXe25Kf8 dsORbObnkaaMoN4hA3H7ce0fqC3a6tFb1irrnJQ5iiCT1Rj/wGFd3SuxZEvUyBkd8euk cgvA== X-Gm-Message-State: APjAAAUohVHCnzYxEeonqTjeb61qgwGZOKvPZJSIWQF9U4IxUeoERPcP xK9i+uO9JAa+F1DKGqya/IxiywNicpQ= X-Received: by 2002:a1c:3c02:: with SMTP id j2mr2587786wma.72.1552397450001; Tue, 12 Mar 2019 06:30:50 -0700 (PDT) Received: from localhost.localdomain (aputeaux-684-1-27-140.w90-86.abo.wanadoo.fr. [90.86.252.140]) by smtp.gmail.com with ESMTPSA id p5sm2187849wme.14.2019.03.12.06.30.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Mar 2019 06:30:49 -0700 (PDT) From: Bartosz Golaszewski To: Jeff Dike , Richard Weinberger , Anton Ivanov Cc: linux-um@lists.infradead.org, linux-kernel@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH] um: remove uses of variable length arrays Date: Tue, 12 Mar 2019 14:30:47 +0100 Message-Id: <20190312133047.16201-1-brgl@bgdev.pl> X-Mailer: git-send-email 2.20.1 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.20.1