libconfuse/CVE-2022-40320.patch
panysh 7fb02eada6 Fix CVE-2022-40320
(cherry picked from commit 97f5d544d04f7bdf30e4ffdb288c8d52563c1dd2)
2022-09-19 14:45:07 +08:00

26 lines
618 B
Diff

--- src/confuse.c
+++ src/confuse.c
@@ -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);
}