diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-29 20:43:42 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-30 09:44:28 +0100 |
commit | d804ae2a602c9b192ee6d709af0cb7b4b8c3cd74 (patch) | |
tree | 4f43649c2511caf9bf674ea6bb58df0850857ec9 /drivers | |
parent | e0c76628bfd150e9fd7f8f0b62e5d461c6cb4a12 (diff) | |
download | barebox-d804ae2a602c9b192ee6d709af0cb7b4b8c3cd74.tar.gz barebox-d804ae2a602c9b192ee6d709af0cb7b4b8c3cd74.tar.xz |
usb: gadget: fastboot: allow data.image to be const
Do not directly store the dynamically allocated memory in data.image
as we want to make that pointer const and then no longer can call
free() on it.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/gadget/f_fastboot.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/usb/gadget/f_fastboot.c b/drivers/usb/gadget/f_fastboot.c index 2ba5977239..87a43cc60e 100644 --- a/drivers/usb/gadget/f_fastboot.c +++ b/drivers/usb/gadget/f_fastboot.c @@ -935,6 +935,7 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req, const char *cmd } if (IS_ENABLED(CONFIG_BAREBOX_UPDATE) && filetype_is_barebox_image(filetype)) { + void *image; struct bbu_data data = { .devicefile = filename, .imagefile = FASTBOOT_TMPFILE, @@ -946,15 +947,17 @@ static void cb_flash(struct usb_ep *ep, struct usb_request *req, const char *cmd fastboot_tx_print(f_fb, "INFOThis is a barebox image..."); - data.image = read_file(data.imagefile, &data.len); - if (!data.image) { + image = read_file(data.imagefile, &data.len); + if (!image) { fastboot_tx_print(f_fb, "FAILreading barebox"); return; } + data.image = image; + ret = barebox_update(&data); - free(data.image); + free(image); if (ret) { fastboot_tx_print(f_fb, "FAILupdate barebox: %s", strerror(-ret)); |