22 lines
892 B
Diff
22 lines
892 B
Diff
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)
|