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:
committed by
Richard Weinberger
parent
4687615d2d
commit
e8a58591af
@@ -97,7 +97,7 @@ static int remove_files_and_dir(char *dir)
|
|||||||
while ((ent = readdir(directory)) != NULL) {
|
while ((ent = readdir(directory)) != NULL) {
|
||||||
if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, ".."))
|
if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, ".."))
|
||||||
continue;
|
continue;
|
||||||
len = strlen(dir) + sizeof("/") + strlen(ent->d_name) + 1;
|
len = strlen(dir) + strlen("/") + strlen(ent->d_name) + 1;
|
||||||
if (len > sizeof(file)) {
|
if (len > sizeof(file)) {
|
||||||
ret = -E2BIG;
|
ret = -E2BIG;
|
||||||
goto out;
|
goto out;
|
||||||
@@ -135,7 +135,7 @@ out:
|
|||||||
*/
|
*/
|
||||||
static inline int is_umdir_used(char *dir)
|
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;
|
int dead, fd, p, n, err;
|
||||||
size_t filelen;
|
size_t filelen;
|
||||||
|
|
||||||
@@ -217,10 +217,10 @@ static int umdir_take_if_dead(char *dir)
|
|||||||
|
|
||||||
static void __init create_pid_file(void)
|
static void __init create_pid_file(void)
|
||||||
{
|
{
|
||||||
char pid[sizeof("nnnnn\0")], *file;
|
char pid[sizeof("nnnnnnnnn")], *file;
|
||||||
int fd, n;
|
int fd, n;
|
||||||
|
|
||||||
n = strlen(uml_dir) + UMID_LEN + sizeof("/pid\0");
|
n = strlen(uml_dir) + UMID_LEN + sizeof("/pid");
|
||||||
file = malloc(n);
|
file = malloc(n);
|
||||||
if (!file)
|
if (!file)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user