From patchwork Fri Mar 10 16:31:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas le bayon X-Patchwork-Id: 737452 X-Patchwork-Delegate: l.majewski@samsung.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3vft7N59T0z9s7t for ; Sat, 11 Mar 2017 03:31:26 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="F0l+Zzeb"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id 62A64C21C85; Fri, 10 Mar 2017 16:31:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 60C8CC21C49; Fri, 10 Mar 2017 16:31:18 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 9E87BC21C49; Fri, 10 Mar 2017 16:31:16 +0000 (UTC) Received: from mail-io0-f196.google.com (mail-io0-f196.google.com [209.85.223.196]) by lists.denx.de (Postfix) with ESMTPS id 1118FC21C45 for ; Fri, 10 Mar 2017 16:31:16 +0000 (UTC) Received: by mail-io0-f196.google.com with SMTP id 68so7397485ioh.3 for ; Fri, 10 Mar 2017 08:31:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=P4mUZmiWAGUE5sSYo1tufwXfc/yi03pnlKWWpyl90ys=; b=F0l+ZzebRzF9YyDjVVqKrLBTi6KVVJ8m0+/oK2vMvBGbcwXwGV4wOCJBK8P05v65HP g/dBctiWE6H7cVziWAm+dokgEI/CY0IdfaZi/WFVbrjqP1I1S9SkTGfSwJVJwoBTZBTp RECWewgeR0jQUTfQJvRXGhsjYE0aAO/hlown9Ud8ni9TQOUTNbzCezF9Um1jdcKSny2g hsKknxGiyMyGNVV5VuVH/Qj28eEpZ4E/6ulGRYgWzpKOqIeradx5pNmgQCmMc1dkkTg8 txTzkfcQQ6ngqB8EPkIuJ8F/6mVd9wXRAU4L+oza8p708my29r9OtIlMqLifzmYc2hrw /agw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=P4mUZmiWAGUE5sSYo1tufwXfc/yi03pnlKWWpyl90ys=; b=oJpUXjK2l21fja+wDMeoheeVlGA2M0Ai9xLGCRrnXgCU3vQe8M18TMb/11+cAVpzIe xfZzydo26HdHdWZTGRyIOr9NcXzXNn14WnUOHe3mspKZk0f3TL7gC4Z8meHNecGE+kQS 9BC3hdph/tsnRjMFAzNht5cAUT/kkEcp3jpyZ9bZ7kHkMnNjojWJvrTIrrfYNTOrdpnj o5Su9fCZe2D801i+72y6jqai6pnh9bLGa0+bkbA7hC1cFWVSzmKA9PE4l5gpGk7p31Tn i2zO46Vaz8gC34umQ/KWmlRcgyENb0YmlJ6K/k2p/2FMgQFi4y9YKLRHO1ZGy30rd1d/ /Kkg== X-Gm-Message-State: AMke39nuJ0QAQAUQU5TKDTW2uTLluOMA4ZG9Q1BGyXbh9IMw6sHyLhOGuYZwrLbqL7GROBG49sA5f3MNDwTpKA== X-Received: by 10.107.12.215 with SMTP id 84mr16456541iom.89.1489163474547; Fri, 10 Mar 2017 08:31:14 -0800 (PST) MIME-Version: 1.0 Received: by 10.107.149.129 with HTTP; Fri, 10 Mar 2017 08:31:13 -0800 (PST) From: Nicolas le bayon Date: Fri, 10 Mar 2017 17:31:13 +0100 Message-ID: To: U-Boot@lists.denx.de, Lukasz Majewski , Marek Vasut X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Subject: [U-Boot] [PATCH v3] usb: gadget: dynamic envstr size in cb_getvar X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Nicolas Le Bayon use dynamic allocation to consider all variable lengths Signed-off-by: Nicolas Le Bayon --- drivers/usb/gadget/f_fastboot.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) strncat(response, s, chars_left); @@ -442,6 +452,8 @@ static void cb_getvar(struct usb_ep *ep, struct usb_request *req) printf("WARNING: unknown variable: %s\n", cmd); strcpy(response, "FAILVariable not implemented"); } + + free(envstr); } fastboot_tx_write_str(response); } diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index 2160b1c..9bb3a95 100644 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -432,9 +432,19 @@ static void cb_getvar(struct usb_ep *ep, struct usb_request *req) else strcpy(response, "FAILValue not set"); } else { - char envstr[32]; + char *envstr = NULL; + unsigned int len; - snprintf(envstr, sizeof(envstr) - 1, "fastboot.%s", cmd); + len = strlen("fastboot.") + strlen(cmd) + 1; + + envstr = malloc(len); + if (!envstr) { + error("variable malloc error"); + fastboot_tx_write_str("FAILvar malloc error"); + return; + } + + sprintf(envstr, "fastboot.%s", cmd); s = getenv(envstr); if (s) {