[PATCH 6/6] main: Rename MAX_ALT_NAME_LEN and bump it to 1023
Tormod Volden
lists.tormod at gmail.com
Wed Aug 31 23:26:25 CEST 2011
From: Tormod Volden <debian.tormod at gmail.com>
The way we retrieve these strings we just have to make sure the buffer
is big enough to not truncate the string. I do not know if the USB
protocol sets any limit to the string length. If not, a possible TODO
would be to add a warning if the returned string filled the buffer.
---
src/main.c | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/main.c b/src/main.c
index 0b1cd36..b9b1985 100644
--- a/src/main.c
+++ b/src/main.c
@@ -54,6 +54,9 @@ int verbose = 0;
/* If we really have to guess (non-compliant devices) */
#define DEFAULT_TRANSFER_SIZE 1024
+/* Not sure if there is any upper limit */
+#define MAX_ALT_NAME_LEN 1023
+
/* define a portable function for reading a 16bit little-endian word */
unsigned short get_int16_le(const void *p)
{
@@ -188,8 +191,6 @@ static int count_matching_dfu_if(struct dfu_if *dif)
return dif->count;
}
-#define MAX_STR_LEN 64
-
/* Retrieves alternate interface name string.
* Returns string length, or negative on error */
static int get_alt_name(struct dfu_if *dfu_if, unsigned char *name)
@@ -213,7 +214,7 @@ static int get_alt_name(struct dfu_if *dfu_if, unsigned char *name)
if (dfu_if->dev_handle)
ret = libusb_get_string_descriptor_ascii(
dfu_if->dev_handle, alt_name_str_idx,
- name, MAX_STR_LEN);
+ name, MAX_ALT_NAME_LEN);
}
libusb_free_config_descriptor(cfg);
return ret;
@@ -221,7 +222,7 @@ static int get_alt_name(struct dfu_if *dfu_if, unsigned char *name)
static int print_dfu_if(struct dfu_if *dfu_if, void *v)
{
- unsigned char name[MAX_STR_LEN+1] = "UNDEFINED";
+ unsigned char name[MAX_ALT_NAME_LEN+1] = "UNDEFINED";
get_alt_name(dfu_if, name);
@@ -254,7 +255,7 @@ static int list_dfu_interfaces(libusb_context *ctx)
static int alt_by_name(struct dfu_if *dfu_if, void *v)
{
- unsigned char name[MAX_STR_LEN+1];
+ unsigned char name[MAX_ALT_NAME_LEN+1];
if (get_alt_name(dfu_if, name) < 0)
return 0;
@@ -513,7 +514,7 @@ int main(int argc, char **argv)
libusb_context *ctx;
struct dfu_file file;
char *alt_name = NULL; /* query alt name if non-NULL */
- unsigned char active_alt_name[MAX_STR_LEN+1];
+ unsigned char active_alt_name[MAX_ALT_NAME_LEN+1];
char *end;
int final_reset = 0;
int ret;
--
1.7.5.4
More information about the devel
mailing list