X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=pscp.c;h=50bea9300bcbffac40b5d10eb9ef094638c20a9c;hb=c925526e3fbf580a4df3e796fc78e22bbe33651d;hp=5aedfee0704a6d35ac434a67a82dd8b5f4c5d6ac;hpb=d9ccf044be5618fd1ded0c69e86212e2038ec6b9;p=PuTTY.git 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; }