From a89371c143d99c114dd3c31f9f9834f3470af8c6 Mon Sep 17 00:00:00 2001 From: lucianom Date: Fri, 17 Apr 2020 14:44:19 +0100 Subject: [PATCH] Fix wrong size of vendor and product strings and add debug printouts --- CHANGELOG.rst | 5 +++++ lib_xua/module_build_info | 2 +- lib_xua/src/core/endpoint0/xua_endpoint0.c | 10 +++++++--- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d72dd59c..c4fb7f95 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,11 @@ lib_xua Change Log ================== +1.0.1 +----- + + * FIXED: Wrong size of vendor and product strings + 1.0.0 ----- diff --git a/lib_xua/module_build_info b/lib_xua/module_build_info index 5f6cb27f..b8b0aa5f 100644 --- a/lib_xua/module_build_info +++ b/lib_xua/module_build_info @@ -1,4 +1,4 @@ -VERSION = 1.0.0 +VERSION = 1.0.1 DEPENDENT_MODULES = lib_logging(>=3.0.0) \ lib_xassert(>=4.0.0) \ diff --git a/lib_xua/src/core/endpoint0/xua_endpoint0.c b/lib_xua/src/core/endpoint0/xua_endpoint0.c index b773a4d3..f30b4c5c 100755 --- a/lib_xua/src/core/endpoint0/xua_endpoint0.c +++ b/lib_xua/src/core/endpoint0/xua_endpoint0.c @@ -234,6 +234,8 @@ void XUA_Endpoint0_setVendorId(unsigned short vid) { } void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer) { + debug_printf("concatenateAndCopyStrings() for \"%s\" and \"%s\"\n", string1, string2); + memset(string_buffer, '\0', strlen(string_buffer)); uint32_t remaining_buffer_size = MIN(strlen(string1), XUA_MAX_STR_LEN-1); @@ -242,9 +244,11 @@ void concatenateAndCopyStrings(char* string1, char* string2, char* string_buffer if (total_string_size==XUA_MAX_STR_LEN-1) { remaining_buffer_size = XUA_MAX_STR_LEN-1-strlen(string1); } else { - remaining_buffer_size = strlen(string1); + remaining_buffer_size = strlen(string2); } + strncat(string_buffer, string2, remaining_buffer_size); + debug_printf("concatenateAndCopyStrings() creates \"%s\"\n", string_buffer); } void XUA_Endpoint0_setStrTable() { @@ -288,12 +292,12 @@ void XUA_Endpoint0_setStrTable() { } void XUA_Endpoint0_setVendorStr(char* vendor_str) { - debug_printf("XUA_Endpoint0_setVendorStr() with string %s", vendor_str); + debug_printf("XUA_Endpoint0_setVendorStr() with string %s\n", vendor_str); concatenateAndCopyStrings(vendor_str, "", g_vendor_str); } void XUA_Endpoint0_setProductStr(char* product_str) { - debug_printf("XUA_Endpoint0_setProductStr() with string %s", product_str); + debug_printf("XUA_Endpoint0_setProductStr() with string %s\n", product_str); concatenateAndCopyStrings(product_str, "", g_product_str); }