projects
/
u
/
mdw
/
putty
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
When asked to malloc zero bytes, malloc one byte instead. This ensures
[u/mdw/putty]
/
pscp.c
diff --git
a/pscp.c
b/pscp.c
index
9259dd0
..
19e5df4
100644
(file)
--- a/
pscp.c
+++ b/
pscp.c
@@
-213,8
+213,6
@@
int from_backend(void *frontend, int is_stderr, const char *data, int datalen)
if (pendsize < pendlen + len) {
pendsize = pendlen + len + 4096;
pending = sresize(pending, pendsize, unsigned char);
if (pendsize < pendlen + len) {
pendsize = pendlen + len + 4096;
pending = sresize(pending, pendsize, unsigned char);
- if (!pending)
- fatalbox("Out of memory");
}
memcpy(pending + pendlen, p, len);
pendlen += len;
}
memcpy(pending + pendlen, p, len);
pendlen += len;
@@
-751,7
+749,7
@@
static struct fxp_handle *scp_sftp_filehandle;
static struct fxp_xfer *scp_sftp_xfer;
static uint64 scp_sftp_fileoffset;
static struct fxp_xfer *scp_sftp_xfer;
static uint64 scp_sftp_fileoffset;
-
void
scp_source_setup(char *target, int shouldbedir)
+
int
scp_source_setup(char *target, int shouldbedir)
{
if (using_sftp) {
/*
{
if (using_sftp) {
/*
@@
-766,7
+764,7
@@
void scp_source_setup(char *target, int shouldbedir)
if (!fxp_init()) {
tell_user(stderr, "unable to initialise SFTP: %s", fxp_error());
errs++;
if (!fxp_init()) {
tell_user(stderr, "unable to initialise SFTP: %s", fxp_error());
errs++;
- return;
+ return
1
;
}
sftp_register(req = fxp_stat_send(target));
}
sftp_register(req = fxp_stat_send(target));
@@
-789,6
+787,7
@@
void scp_source_setup(char *target, int shouldbedir)
} else {
(void) response();
}
} else {
(void) response();
}
+ return 0;
}
int scp_send_errmsg(char *str)
}
int scp_send_errmsg(char *str)
@@
-1980,7
+1979,8
@@
static void toremote(int argc, char *argv[])
do_cmd(host, user, cmd);
sfree(cmd);
do_cmd(host, user, cmd);
sfree(cmd);
- scp_source_setup(targ, targetshouldbedirectory);
+ if (scp_source_setup(targ, targetshouldbedirectory))
+ return;
for (i = 0; i < argc - 1; i++) {
src = argv[i];
for (i = 0; i < argc - 1; i++) {
src = argv[i];