X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=command.c;h=89a6aeaf775c76d4448df964ba29317a42af97e5;hp=d7b68a45d99807f3029749609df90b92ebaba9c3;hb=639f0dd92d1fc446eaa7c4747a7b132be5741f7e;hpb=b3f6c5fa7f0fe78e825ecc83f3b9f9893c0427c6 diff --git a/command.c b/command.c index d7b68a45..89a6aeaf 100644 --- a/command.c +++ b/command.c @@ -812,8 +812,8 @@ out: static int run_command(struct command_context *cc, struct iovec *iov, const char *peername) { - int ret, i; - char *p, *end; + int ret, i, argc; + char *p, *end, **argv; const struct lls_command *lcmd = NULL; unsigned perms; struct lls_parse_result *lpr; @@ -836,23 +836,23 @@ static int run_command(struct command_context *cc, struct iovec *iov, end = iov->iov_base + iov->iov_len; for (i = 0; p < end; i++) p += strlen(p) + 1; - cc->argc = i; - cc->argv = para_malloc((cc->argc + 1) * sizeof(char *)); + argc = i; + argv = para_malloc((argc + 1) * sizeof(char *)); for (i = 0, p = iov->iov_base; p < end; i++) { - cc->argv[i] = para_strdup(p); + argv[i] = para_strdup(p); p += strlen(p) + 1; } - cc->argv[cc->argc] = NULL; + argv[argc] = NULL; PARA_NOTICE_LOG("calling com_%s() for %s@%s\n", lls_command_name(lcmd), cc->u->name, peername); - ret = lls(lls_parse(cc->argc, cc->argv, lcmd, &lpr, &errctx)); + ret = lls(lls_parse(argc, argv, lcmd, &lpr, &errctx)); if (ret >= 0) { const struct server_cmd_user_data *ud = lls_user_data(lcmd); ret = ud->handler(cc, lpr); lls_free_parse_result(lpr, lcmd); } else send_errctx(cc, errctx); - free_argv(cc->argv); + free_argv(argv); mutex_lock(mmd_mutex); mmd->num_commands++; if (ret >= 0 && (perms & AFS_WRITE))