um: Fix incorrect assumptions about max pid length
pids are no longer limited to 16-bits, bump to 32-bits, ie. 9 decimal characters. Additionally sizeof("/") already returns 2 - ie. it already accounts for trailing zero. Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Cc: Anton Ivanov <anton.ivanov@cambridgegreys.com> Cc: Linux UM Mailing List <linux-um@lists.infradead.org> Signed-off-by: Maciej Żenczykowski <maze@google.com> Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
4687615d2d
commit
e8a58591af
|
@ -97,7 +97,7 @@ static int remove_files_and_dir(char *dir)
|
|||
while ((ent = readdir(directory)) != NULL) {
|
||||
if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, ".."))
|
||||
continue;
|
||||
len = strlen(dir) + sizeof("/") + strlen(ent->d_name) + 1;
|
||||
len = strlen(dir) + strlen("/") + strlen(ent->d_name) + 1;
|
||||
if (len > sizeof(file)) {
|
||||
ret = -E2BIG;
|
||||
goto out;
|
||||
|
@ -135,7 +135,7 @@ out:
|
|||
*/
|
||||
static inline int is_umdir_used(char *dir)
|
||||
{
|
||||
char pid[sizeof("nnnnn\0")], *end, *file;
|
||||
char pid[sizeof("nnnnnnnnn")], *end, *file;
|
||||
int dead, fd, p, n, err;
|
||||
size_t filelen;
|
||||
|
||||
|
@ -217,10 +217,10 @@ static int umdir_take_if_dead(char *dir)
|
|||
|
||||
static void __init create_pid_file(void)
|
||||
{
|
||||
char pid[sizeof("nnnnn\0")], *file;
|
||||
char pid[sizeof("nnnnnnnnn")], *file;
|
||||
int fd, n;
|
||||
|
||||
n = strlen(uml_dir) + UMID_LEN + sizeof("/pid\0");
|
||||
n = strlen(uml_dir) + UMID_LEN + sizeof("/pid");
|
||||
file = malloc(n);
|
||||
if (!file)
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue