Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9276dfd2 authored by Chen Gang's avatar Chen Gang Committed by Benjamin Herrenschmidt
Browse files

drivers/tty/hvc: Use strlcpy instead of strncpy



when strlen pi->location_code is larger than HVCS_CLC_LENGTH + 1,
    original implementation can not let hvcsd->p_location_code NUL terminated.
  so need fix it (also can simplify the code)

Signed-off-by: default avatarChen Gang <gang.chen@asianux.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 6b6680c4
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -881,17 +881,12 @@ static struct vio_driver hvcs_vio_driver = {
/* Only called from hvcs_get_pi please */
static void hvcs_set_pi(struct hvcs_partner_info *pi, struct hvcs_struct *hvcsd)
{
	int clclength;

	hvcsd->p_unit_address = pi->unit_address;
	hvcsd->p_partition_ID  = pi->partition_ID;
	clclength = strlen(&pi->location_code[0]);
	if (clclength > HVCS_CLC_LENGTH)
		clclength = HVCS_CLC_LENGTH;

	/* copy the null-term char too */
	strncpy(&hvcsd->p_location_code[0],
			&pi->location_code[0], clclength + 1);
	strlcpy(&hvcsd->p_location_code[0],
			&pi->location_code[0], sizeof(hvcsd->p_location_code));
}

/*