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

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
...@@ -220,11 +220,12 @@ static void __init create_pid_file(void) ...@@ -220,11 +220,12 @@ static void __init create_pid_file(void)
char pid[sizeof("nnnnn\0")], *file; char pid[sizeof("nnnnn\0")], *file;
int fd, n; 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) if (!file)
return; return;
if (umid_file_name("pid", file, sizeof(file))) if (umid_file_name("pid", file, n))
goto out; goto out;
fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644); fd = open(file, O_RDWR | O_CREAT | O_EXCL, 0644);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment