From 7ea13a967a3c73671323673b0f33976c164367e4 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Sat, 28 May 2016 17:24:34 -0700 Subject: [PATCH] dll: fsp_fuse_opt_insert_arg/fsp_fuse_opt_free_args: testing --- inc/fuse/fuse_opt.h | 4 ++++ src/dll/fuse/fuse_opt.c | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/inc/fuse/fuse_opt.h b/inc/fuse/fuse_opt.h index 1caa1277..7a34f706 100644 --- a/inc/fuse/fuse_opt.h +++ b/inc/fuse/fuse_opt.h @@ -23,6 +23,10 @@ #ifndef FUSE_OPT_H_ #define FUSE_OPT_H_ +#if !defined(WINFSP_DLL_INTERNAL) +#include +#endif + #ifdef __cplusplus extern "C" { #endif diff --git a/src/dll/fuse/fuse_opt.c b/src/dll/fuse/fuse_opt.c index 6bd1e168..43684e6b 100644 --- a/src/dll/fuse/fuse_opt.c +++ b/src/dll/fuse/fuse_opt.c @@ -431,7 +431,7 @@ FSP_FUSE_API int fsp_fuse_opt_insert_arg(struct fuse_args *args, int pos, const if (0 == args) return -1; - if (!args->allocated && 0 != args->argv) + if (0 != args->argv && !args->allocated) return -1; if (0 > pos || pos > args->argc) return -1; @@ -448,14 +448,15 @@ FSP_FUSE_API int fsp_fuse_opt_insert_arg(struct fuse_args *args, int pos, const } memcpy(argv[pos], arg, argsize); - memcpy(argv, args->argv, pos); - memcpy(argv + pos + 1, args->argv + pos, args->argc - pos); + memcpy(argv, args->argv, sizeof(char *) * pos); + memcpy(argv + pos + 1, args->argv + pos, sizeof(char *) * (args->argc - pos)); memfree(args->argv); args->argc++; args->argv = argv; argv[args->argc] = 0; + args->allocated = 1; return 0; }