Skip to content

Commit e8a5859

Browse files
zenczykowskirichardweinberger
authored andcommitted
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>
1 parent 4687615 commit e8a5859

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

arch/um/os-Linux/umid.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ static int remove_files_and_dir(char *dir)
9797
while ((ent = readdir(directory)) != NULL) {
9898
if (!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, ".."))
9999
continue;
100-
len = strlen(dir) + sizeof("/") + strlen(ent->d_name) + 1;
100+
len = strlen(dir) + strlen("/") + strlen(ent->d_name) + 1;
101101
if (len > sizeof(file)) {
102102
ret = -E2BIG;
103103
goto out;
@@ -135,7 +135,7 @@ static int remove_files_and_dir(char *dir)
135135
*/
136136
static inline int is_umdir_used(char *dir)
137137
{
138-
char pid[sizeof("nnnnn\0")], *end, *file;
138+
char pid[sizeof("nnnnnnnnn")], *end, *file;
139139
int dead, fd, p, n, err;
140140
size_t filelen;
141141

@@ -217,10 +217,10 @@ static int umdir_take_if_dead(char *dir)
217217

218218
static void __init create_pid_file(void)
219219
{
220-
char pid[sizeof("nnnnn\0")], *file;
220+
char pid[sizeof("nnnnnnnnn")], *file;
221221
int fd, n;
222222

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

0 commit comments

Comments
 (0)