Initial fasboot specification allowed at maximum 64 characters as answer. This has been increased to 256 [1]. Allow for longer answer sizes.
While at it use a define for the maximum answer length to avoid repeating the hardcoded number. Also allow the answer to be exactly the maximum length. Previous implementation used a 64 byte string which included the '\0' string end and limited the usable size to 63 bytes. Now we can use the full 256 bytes. [1] https://android.googlesource.com/platform/system/core/+/master/fastboot/ Signed-off-by: Sascha Hauer <[email protected]> --- common/fastboot.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/common/fastboot.c b/common/fastboot.c index b661d610a3..96d7fbd8c7 100644 --- a/common/fastboot.c +++ b/common/fastboot.c @@ -269,11 +269,13 @@ static char *fastboot_msg[] = { [FASTBOOT_MSG_NONE] = "", }; +#define FASTBOOT_MAX_RESPONSE_SIZE 256 + int fastboot_tx_print(struct fastboot *fb, enum fastboot_msg_type type, const char *fmt, ...) { struct va_format vaf; - char buf[64]; + char buf[FASTBOOT_MAX_RESPONSE_SIZE + 1]; va_list ap; int n; const char *msg = fastboot_msg[type]; @@ -282,7 +284,7 @@ int fastboot_tx_print(struct fastboot *fb, enum fastboot_msg_type type, vaf.fmt = fmt; vaf.va = ≈ - n = snprintf(buf, 64, "%s%pV", msg, &vaf); + n = snprintf(buf, FASTBOOT_MAX_RESPONSE_SIZE + 1, "%s%pV", msg, &vaf); switch (type) { case FASTBOOT_MSG_OKAY: @@ -302,8 +304,8 @@ int fastboot_tx_print(struct fastboot *fb, enum fastboot_msg_type type, va_end(ap); - if (n > 64) - n = 64; + if (n > FASTBOOT_MAX_RESPONSE_SIZE) + n = FASTBOOT_MAX_RESPONSE_SIZE; return fb->write(fb, buf, n); } -- 2.47.3
