Commit ba758cfc authored by Wen Yang's avatar Wen Yang Committed by Richard Weinberger
Browse files

um: Fix len of file in create_pid_file



sizeof gives us the size of the pointer variable, not of the
area it points to. So the number of bytes copied by umid_file_name()
is 8.
We should pass in the correct length of the file buffer.

Signed-off-by: default avatarWen Yang <wenyang@linux.alibaba.com>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 7d7c0568
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -220,11 +220,12 @@ static void __init create_pid_file(void)
	char pid[sizeof("nnnnn\0")], *file;
	int fd, n;

	file = malloc(strlen(uml_dir) + UMID_LEN + sizeof("/pid\0"));
	n = strlen(uml_dir) + UMID_LEN + sizeof("/pid\0");
	file = malloc(n);
	if (!file)
		return;

	if (umid_file_name("pid", file, sizeof(file)))
	if (umid_file_name("pid", file, n))
		goto out;

	fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644);