mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-24 10:17:28 +00:00
hv: minor fixes to a few calls to strncpy_s()
strncpy_s(d, dmax, s, slen): the 'dmax' includes the null terminator, while slen doesn't. Thus if (dmax == slen == strlen(s)), strncpy_s() chooses to discard the last character from s and instead write '\0' to d[dmax - 1]. strnlen_s(s, maxsize): if there is no terminating null character in the first maxsize characters pointed to by s, strnlen_s() returns maxsize. So in the following example or similar cases, we need to increase the size of d[] by 1 to accommodate the null terminator, and add '1' to the dmax argument to strncpy_s(). uint8_t d[MAX_LEN]; size = strnlen_s(s, MAX_LEN); strncpy_s(d, MAX_LEN, s, size); Tracked-On: #861 Signed-off-by: Zide Chen <zide.chen@intel.com>
This commit is contained in:
@@ -355,7 +355,7 @@ static int32_t shell_process_cmd(const char *p_input_line)
|
||||
/* Copy the input line INTo an argument string to become part of the
|
||||
* argument vector.
|
||||
*/
|
||||
(void)strncpy_s(&cmd_argv_str[0], SHELL_CMD_MAX_LEN, p_input_line, SHELL_CMD_MAX_LEN);
|
||||
(void)strncpy_s(&cmd_argv_str[0], SHELL_CMD_MAX_LEN + 1U, p_input_line, SHELL_CMD_MAX_LEN);
|
||||
cmd_argv_str[SHELL_CMD_MAX_LEN] = 0;
|
||||
|
||||
/* Build the argv vector from the string. The first argument in the
|
||||
|
Reference in New Issue
Block a user