X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/7cf3a8d8ee9e443c881433c9d8a91bd8d9b87d21..cb5488c53f54fbdb36ce3f43bbf72d32c002b26a:/pscp.c?ds=sidebyside diff --git a/pscp.c b/pscp.c index 5aedfee0..50bea930 100644 --- a/pscp.c +++ b/pscp.c @@ -928,6 +928,8 @@ int scp_send_filedata(char *data, int len) ret = xfer_upload_gotpkt(scp_sftp_xfer, pktin); if (ret <= 0) { tell_user(stderr, "error while writing: %s", fxp_error()); + if (ret == INT_MIN) /* pktin not even freed */ + sfree(pktin); errs++; return 1; } @@ -969,6 +971,8 @@ int scp_send_finish(void) ret = xfer_upload_gotpkt(scp_sftp_xfer, pktin); if (ret <= 0) { tell_user(stderr, "error while writing: %s", fxp_error()); + if (ret == INT_MIN) /* pktin not even freed */ + sfree(pktin); errs++; return 1; } @@ -1566,6 +1570,8 @@ int scp_recv_filedata(char *data, int len) ret = xfer_download_gotpkt(scp_sftp_xfer, pktin); if (ret <= 0) { tell_user(stderr, "pscp: error while reading: %s", fxp_error()); + if (ret == INT_MIN) /* pktin not even freed */ + sfree(pktin); errs++; return -1; } @@ -1611,6 +1617,8 @@ int scp_finish_filerecv(void) ret = xfer_download_gotpkt(scp_sftp_xfer, pktin); if (ret <= 0) { tell_user(stderr, "pscp: error while reading: %s", fxp_error()); + if (ret == INT_MIN) /* pktin not even freed */ + sfree(pktin); errs++; return -1; }