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