The lthor tool sends maxium 64 length file name with two
str_data[] elements. If the 32nd character of str_data[0] is not
'\0', then it can be longer than 32, so copy str_data[1] also.
Change-Id: Ia95a2a16fc2ad876834d504c558e3f2fcce11119
Ref: https://git.tizen.org/cgit/tools/lthor/commit/?id=
7da7ee14ea6eed60274ef3d65d16e842547bbd3e
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Name: initrd-flash
Summary: Advanced flash-manager, package for building ramdisk-recovery.img
-Version: 0.0.4
+Version: 0.0.5
Release: 0
Group: System/Utilities
License: Apache-2.0
#define RES_PKT_SIZE sizeof(struct res_pkt)
#define DATA_RES_PKT_SIZE sizeof(struct data_res_pkt)
-#define FILE_NAME_MAXLEN 32
+#define STR_DATA_MAXLEN 32
+#define FILE_NAME_MAXLEN (STR_DATA_MAXLEN * 2)
#define DATA_PKT_SIZE 0x00040000 /* 256 KiB */
#define FLASH_UNIT_SIZE 0x00100000 /* 1 MiB */
file_size = (((uint64_t)(uint32_t)rqt->int_data[2] << 32)
| (uint32_t)rqt->int_data[1]);
- memcpy(f_name, rqt->str_data[0], FILE_NAME_MAXLEN);
+ memcpy(f_name, rqt->str_data[0], STR_DATA_MAXLEN);
+
+ /* For longer filename than 32 */
+ if (rqt->str_data[0][STR_DATA_MAXLEN - 1] != '\0')
+ memcpy(f_name + STR_DATA_MAXLEN, rqt->str_data[1], STR_DATA_MAXLEN);
rsp.int_data[0] = DATA_PKT_SIZE;