mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-03-22 14:39:24 -05:00
psftp: stop checking the return of canonify() for NULL.
It hasn't been possible for canonify() to return a null pointer since commit 094dd30d9, in 2001. But the whole of psftp.c is full of error checking clauses that allow for the possibility that it might!
This commit is contained in:
parent
b54147de4b
commit
e9b49fdced
46
psftp.c
46
psftp.c
@ -927,10 +927,6 @@ bool wildcard_iterate(char *filename, bool (*func)(void *, char *), void *ctx)
|
|||||||
|
|
||||||
while ( (newname = sftp_wildcard_get_filename(swcm)) != NULL ) {
|
while ( (newname = sftp_wildcard_get_filename(swcm)) != NULL ) {
|
||||||
cname = canonify(newname);
|
cname = canonify(newname);
|
||||||
if (!cname) {
|
|
||||||
printf("%s: canonify: %s\n", newname, fxp_error());
|
|
||||||
toret = false;
|
|
||||||
}
|
|
||||||
sfree(newname);
|
sfree(newname);
|
||||||
matched = true;
|
matched = true;
|
||||||
if (!func(ctx, cname))
|
if (!func(ctx, cname))
|
||||||
@ -946,10 +942,6 @@ bool wildcard_iterate(char *filename, bool (*func)(void *, char *), void *ctx)
|
|||||||
sftp_finish_wildcard_matching(swcm);
|
sftp_finish_wildcard_matching(swcm);
|
||||||
} else {
|
} else {
|
||||||
cname = canonify(unwcfname);
|
cname = canonify(unwcfname);
|
||||||
if (!cname) {
|
|
||||||
printf("%s: canonify: %s\n", filename, fxp_error());
|
|
||||||
toret = false;
|
|
||||||
}
|
|
||||||
toret = func(ctx, cname);
|
toret = func(ctx, cname);
|
||||||
sfree(cname);
|
sfree(cname);
|
||||||
sfree(unwcfname);
|
sfree(unwcfname);
|
||||||
@ -1066,11 +1058,6 @@ int sftp_cmd_ls(struct sftp_command *cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
cdir = canonify(dir);
|
cdir = canonify(dir);
|
||||||
if (!cdir) {
|
|
||||||
printf("%s: canonify: %s\n", dir, fxp_error());
|
|
||||||
sfree(unwcdir);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Listing directory %s\n", cdir);
|
printf("Listing directory %s\n", cdir);
|
||||||
|
|
||||||
@ -1162,10 +1149,6 @@ int sftp_cmd_cd(struct sftp_command *cmd)
|
|||||||
dir = dupstr(homedir);
|
dir = dupstr(homedir);
|
||||||
else {
|
else {
|
||||||
dir = canonify(cmd->words[1]);
|
dir = canonify(cmd->words[1]);
|
||||||
if (!dir) {
|
|
||||||
printf("%s: canonify: %s\n", cmd->words[1], fxp_error());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
req = fxp_opendir_send(dir);
|
req = fxp_opendir_send(dir);
|
||||||
@ -1272,14 +1255,6 @@ int sftp_general_get(struct sftp_command *cmd, bool restart, bool multiple)
|
|||||||
while (origwfname) {
|
while (origwfname) {
|
||||||
fname = canonify(origwfname);
|
fname = canonify(origwfname);
|
||||||
|
|
||||||
if (!fname) {
|
|
||||||
sftp_finish_wildcard_matching(swcm);
|
|
||||||
printf("%s: canonify: %s\n", origwfname, fxp_error());
|
|
||||||
sfree(origwfname);
|
|
||||||
sfree(unwcfname);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!multiple && i < cmd->nwords)
|
if (!multiple && i < cmd->nwords)
|
||||||
outfname = cmd->words[i++];
|
outfname = cmd->words[i++];
|
||||||
else
|
else
|
||||||
@ -1386,14 +1361,6 @@ int sftp_general_put(struct sftp_command *cmd, bool restart, bool multiple)
|
|||||||
origoutfname = stripslashes(wfname, true);
|
origoutfname = stripslashes(wfname, true);
|
||||||
|
|
||||||
outfname = canonify(origoutfname);
|
outfname = canonify(origoutfname);
|
||||||
if (!outfname) {
|
|
||||||
printf("%s: canonify: %s\n", origoutfname, fxp_error());
|
|
||||||
if (wcm) {
|
|
||||||
sfree(wfname);
|
|
||||||
finish_wildcard_matching(wcm);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
toret = sftp_put_file(wfname, outfname, recurse, restart);
|
toret = sftp_put_file(wfname, outfname, recurse, restart);
|
||||||
sfree(outfname);
|
sfree(outfname);
|
||||||
|
|
||||||
@ -1449,10 +1416,6 @@ int sftp_cmd_mkdir(struct sftp_command *cmd)
|
|||||||
ret = 1;
|
ret = 1;
|
||||||
for (i = 1; i < cmd->nwords; i++) {
|
for (i = 1; i < cmd->nwords; i++) {
|
||||||
dir = canonify(cmd->words[i]);
|
dir = canonify(cmd->words[i]);
|
||||||
if (!dir) {
|
|
||||||
printf("%s: canonify: %s\n", cmd->words[i], fxp_error());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
req = fxp_mkdir_send(dir, NULL);
|
req = fxp_mkdir_send(dir, NULL);
|
||||||
pktin = sftp_wait_for_reply(req);
|
pktin = sftp_wait_for_reply(req);
|
||||||
@ -1593,11 +1556,6 @@ static bool sftp_action_mv(void *vctx, char *srcfname)
|
|||||||
while (p > srcfname && p[-1] != '/') p--;
|
while (p > srcfname && p[-1] != '/') p--;
|
||||||
newname = dupcat(ctx->dstfname, "/", p, NULL);
|
newname = dupcat(ctx->dstfname, "/", p, NULL);
|
||||||
newcanon = canonify(newname);
|
newcanon = canonify(newname);
|
||||||
if (!newcanon) {
|
|
||||||
printf("%s: canonify: %s\n", newname, fxp_error());
|
|
||||||
sfree(newname);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
sfree(newname);
|
sfree(newname);
|
||||||
|
|
||||||
finalfname = newcanon;
|
finalfname = newcanon;
|
||||||
@ -1639,10 +1597,6 @@ int sftp_cmd_mv(struct sftp_command *cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctx->dstfname = canonify(cmd->words[cmd->nwords-1]);
|
ctx->dstfname = canonify(cmd->words[cmd->nwords-1]);
|
||||||
if (!ctx->dstfname) {
|
|
||||||
printf("%s: canonify: %s\n", ctx->dstfname, fxp_error());
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there's more than one source argument, or one source
|
* If there's more than one source argument, or one source
|
||||||
|
Loading…
x
Reference in New Issue
Block a user