Blame afuse-0.4.1-strcpy-buffer-overflow-fix.patch
|
|
cacaddb |
diff -up afuse-0.4.1/src/afuse.c.strcpy-buffer-overflow-fix afuse-0.4.1/src/afuse.c
|
|
|
cacaddb |
--- afuse-0.4.1/src/afuse.c.strcpy-buffer-overflow-fix 2013-02-12 21:36:47.000000000 -0500
|
|
|
cacaddb |
+++ afuse-0.4.1/src/afuse.c 2021-02-24 13:31:58.884245692 -0500
|
|
|
cacaddb |
@@ -1853,8 +1853,16 @@ static int afuse_opt_proc(void *data, co
|
|
|
cacaddb |
int main(int argc, char *argv[])
|
|
|
cacaddb |
{
|
|
|
cacaddb |
struct fuse_args args = FUSE_ARGS_INIT(argc, argv);
|
|
|
cacaddb |
- char *temp_dir_name = my_malloc(strlen(TMP_DIR_TEMPLATE));
|
|
|
cacaddb |
- strcpy(temp_dir_name, TMP_DIR_TEMPLATE);
|
|
|
cacaddb |
+ size_t buflen = strlen(TMP_DIR_TEMPLATE);
|
|
|
cacaddb |
+ // need one more for the null terminator
|
|
|
cacaddb |
+ buflen++;
|
|
|
cacaddb |
+ char *temp_dir_name = my_malloc(buflen);
|
|
|
cacaddb |
+ if (buflen > 0) {
|
|
|
cacaddb |
+ strncpy(temp_dir_name, TMP_DIR_TEMPLATE, buflen - 1);
|
|
|
cacaddb |
+ temp_dir_name[buflen - 1] = '\0';
|
|
|
cacaddb |
+ }
|
|
|
cacaddb |
+
|
|
|
cacaddb |
+ // strcpy(temp_dir_name, TMP_DIR_TEMPLATE);
|
|
|
cacaddb |
|
|
|
cacaddb |
if (fuse_opt_parse(&args, &user_options, afuse_opts, afuse_opt_proc) ==
|
|
|
cacaddb |
-1)
|