You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
691 B
26 lines
691 B
--- src/confuse.c~ 2020-06-21 15:53:26.000000000 -0500
|
|
+++ src/confuse.c 2022-09-12 08:41:44.448638314 -0500
|
|
@@ -1865,16 +1865,19 @@
|
|
} else {
|
|
/* ~user or ~user/path */
|
|
char *user;
|
|
+ size_t len;
|
|
|
|
file = strchr(filename, '/');
|
|
if (file == 0)
|
|
file = filename + strlen(filename);
|
|
|
|
- user = malloc(file - filename);
|
|
- if (!user)
|
|
+ len = file - filename - 1;
|
|
+ user = malloc(len + 1);
|
|
+ if (!user)
|
|
return NULL;
|
|
|
|
- strncpy(user, filename + 1, file - filename - 1);
|
|
+ strncpy(user, &filename[1], len);
|
|
+ user[len] = 0;
|
|
passwd = getpwnam(user);
|
|
free(user);
|
|
}
|