Skip to content

Commit

Permalink
Merge pull request dokan-dev#677 from Daniel-Abrecht/master
Browse files Browse the repository at this point in the history
Fix commit bfccd62
  • Loading branch information
Liryna committed Apr 14, 2018
2 parents a9be216 + be7d518 commit c60725b
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions dokan_fuse/src/fuse_opt.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,12 @@ int fuse_opt_add_opt(char **opts, const char *opt)
newopts = STRDUP(opt);
else {
size_t oldlen = strlen(*opts);
size_t newlen = oldlen + 1 + strlen(opt) + 1;
newopts = (char *)realloc(*opts, newlen);
size_t optlen = strlen(opt);
newopts = (char *)realloc(*opts, oldlen + 1 + optlen + 1);
if (newopts) {
newopts[oldlen] = ',';
strncpy(newopts + oldlen + 1, opt, newlen);
strncpy(newopts + oldlen + 1, opt, optlen);
newopts[oldlen + 1 + optlen] = '\0';
}
}
if (!newopts)
Expand Down Expand Up @@ -223,19 +224,20 @@ static int process_opt_sep_arg(struct fuse_opt_context *ctx,
int res;
char *newarg;
char *param;
size_t newarglen;
size_t paramlen;

if (next_arg(ctx, arg) == -1)
return -1;

param = ctx->argv[ctx->argctr];
newarglen = sep + strlen(param) + 1;
newarg = (char *)malloc(newarglen);
paramlen = strlen(param);
newarg = (char *)malloc(sep + paramlen + 1);
if (!newarg)
return alloc_failed();

memcpy(newarg, arg, sep);
strncpy(newarg + sep, param, newarglen);
strncpy(newarg + sep, param, paramlen);
newarg[sep+paramlen] = '\0';
res = process_opt(ctx, opt, sep, newarg, iso);
free(newarg);

Expand Down

0 comments on commit c60725b

Please sign in to comment.