Hello Patrick, On 08.02.21 17:56, Patrick DELAUNAY wrote: > Hi Heiko, > > > On 2/8/21 12:38 PM, Heiko Schocher wrote: >> add support for the UUU commands ACmd and UCmd. >> >> Enable them through the Kconfig option >> CONFIG_FASTBOOT_UUU_SUPPORT >> >> base was commit in NXP kernel >> 9b149c2a2882: ("MLK-18591-3 android: Add FSL android fastboot support") >> >> and ported it to current mainline. Tested this patch >> on imx6ul based board. >> >> Signed-off-by: Heiko Schocher <h...@denx.de> >> --- >> >> azure build was fine: >> https://dev.azure.com/hs0298/hs/_build/results?buildId=59&view=results >> >> Changes in v4: >> - fixed missing parts from Sean Anderson patches >> lost while rebased to tree from lukasz >> >> Changes in v3: >> - rebased to https://github.com/lmajewski/u-boot-dfu/commits/testing >> as Lukasz mentioned. >> >> Changes in v2: >> - remove unused FSL_FASTBOOT option >> - add comment from Roman: >> do not enable this option per default >> add Kconfig comment that enabling this option may >> introduce a security issue. >> >> doc/android/fastboot-protocol.rst | 5 +++ >> doc/android/fastboot.rst | 2 + >> drivers/fastboot/Kconfig | 9 +++++ >> drivers/fastboot/fb_command.c | 62 +++++++++++++++++++++++++++++++ >> drivers/usb/gadget/f_fastboot.c | 17 +++++++++ >> include/fastboot.h | 7 ++++ >> 6 files changed, 102 insertions(+) >> > (...) >> diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c >> index 41fc8d7904d..960e73089e0 100644 >> --- a/drivers/fastboot/fb_command.c >> +++ b/drivers/fastboot/fb_command.c > (...) >> + >> +static char g_a_cmd_buff[64]; >> + >> +void fastboot_acmd_complete(void) >> +{ >> + run_command(g_a_cmd_buff, 0); >> +} >> + >> +/** >> + * run_acmd() - Execute the ACmd command >> + * >> + * @cmd_parameter: Pointer to command parameter >> + * @response: Pointer to fastboot response buffer >> + */ >> +static void run_acmd(char *cmd_parameter, char *response) >> +{ >> + if (!cmd_parameter) { >> + pr_err("missing slot suffix\n"); >> + fastboot_fail("missing command", response); >> + return; >> + } >> + >> + strcpy(g_a_cmd_buff, cmd_parameter); > > > to avoid overflow: > > > + strncpy (g_a_cmd_buff, cmd_parameter, sizeof(g_a_cmd_buff)); > > > or check strlen(cmd_parameter) ? > > > + if (check strlen(cmd_parameter) > sizeof(g_a_cmd_buff)) { > > + pr_err("too long command\n"); > > + fastboot_fail("too long command", response); > + return; > + }
Yes, good catch, thanks! I send a v5 with checking the length and error message >> + fastboot_okay(NULL, response); >> +} >> +#endif >> + >> /** >> * reboot_bootloader() - Sets reboot bootloader flag. >> * >> diff --git a/drivers/usb/gadget/f_fastboot.c >> b/drivers/usb/gadget/f_fastboot.c >> index 950cc119495..8ba55aab9f8 100644 >> --- a/drivers/usb/gadget/f_fastboot.c >> +++ b/drivers/usb/gadget/f_fastboot.c >> @@ -494,6 +494,18 @@ static void do_bootm_on_complete(struct usb_ep *ep, >> struct usb_request *req) >> do_exit_on_complete(ep, req); >> } >> > (...) > > Anyway, except this remark. > > Acked-by: Patrick Delaunay <patrick.delau...@foss.st.com> bye, Heiko -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: h...@denx.de