From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Tue, 9 May 2017 19:06:37 +0200 Subject: [U-Boot] [PATCH v7] usb: gadget: avoid variable name clipping in cb_getvar In-Reply-To: <25b36f7ec9f5410da8b9c0da2a498daf@SFHDAG6NODE3.st.com> References: <1493108288-24058-1-git-send-email-nicolas.le.bayon@st.com> <25b36f7ec9f5410da8b9c0da2a498daf@SFHDAG6NODE3.st.com> Message-ID: <20170509190637.41ea93f0@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Tue, 9 May 2017 15:58:36 +0000 Nicolas LE BAYON wrote: > Hi, > > A kind reminder to look at this patch (already reviewed by Marek and > acked by Lukasz), and if possible to put it in the next pull list, or > the one after is timing is too short. I wanted to add this patch with other ones. Unfortunately those other patches needed more review, so I postponed the PR. I will ask Tom to take this one directly. > > Thanks in advance for your time > > Best Regards > Nicolas > > -----Original Message----- > From: Nicolas LE BAYON > Sent: mardi 25 avril 2017 10:18 > To: Nicolas LE BAYON ; u-boot at lists.denx.de; > lukma at denx.de; marex at denx.de Cc: nlebayon at gmail.com; Patrice CHOTARD > ; Jean-philippe ROMAIN > Subject: [U-Boot][PATCH v7] usb: > gadget: avoid variable name clipping in cb_getvar > > From: Nicolas Le Bayon > > Instead of using a fixed-size array to store variable name, > preferring a dynamic allocation treats correctly all variable name > lengths. Variable names are growing through releases and features. By > this way, name clipping is prevented. > > Signed-off-by: Nicolas Le Bayon > Reviewed-by: Marek Vasut > Acked-by: Lukasz Majewski > --- > > Changes in v2: > - instead of using a bigger fixed size, use malloc to fit with size > needs Changes in v3: > - v2 was an error (intermediate version), so propose a complete one > Changes in v4: > - be more explicit and detailed in label and description fields > - remove intermediate variable only used one time > - be more explicit in error message > - fix indent issue > Changes in v5: > - drop an unuseful error() call > Changes in v6: > - add Marek review approval > Changes in v7: > - add Lukasz ack approval > > drivers/usb/gadget/f_fastboot.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/gadget/f_fastboot.c > b/drivers/usb/gadget/f_fastboot.c index 2160b1c..7cd6d24 100644 --- > a/drivers/usb/gadget/f_fastboot.c +++ > b/drivers/usb/gadget/f_fastboot.c @@ -432,9 +432,15 @@ static void > cb_getvar(struct usb_ep *ep, struct usb_request *req) else > strcpy(response, "FAILValue not set"); > } else { > - char envstr[32]; > + char *envstr; > > - snprintf(envstr, sizeof(envstr) - 1, "fastboot.%s", > cmd); > + envstr = malloc(strlen("fastboot.") + strlen(cmd) + > 1); > + if (!envstr) { > + fastboot_tx_write_str("FAILmalloc error"); > + return; > + } > + > + sprintf(envstr, "fastboot.%s", cmd); > s = getenv(envstr); > if (s) { > strncat(response, s, chars_left); > @@ -442,6 +448,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); > } > -- > 1.9.1 > Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de