From e411492c06252fe4a9eaaaaca703bfff76c5a4b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Wed, 28 Feb 2024 23:49:53 -0500 Subject: [PATCH] Some locking cleanups --- src/sbbs3/sftp.cpp | 4 +++- src/sftp/sftp_server.c | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/sftp.cpp b/src/sbbs3/sftp.cpp index d61afc4294..a389e7e06a 100644 --- a/src/sbbs3/sftp.cpp +++ b/src/sbbs3/sftp.cpp @@ -993,8 +993,10 @@ sftp_send(uint8_t *buf, size_t len, void *cb_data) while (sent < len) { pthread_mutex_lock(&sbbs->ssh_mutex); status = cryptSetAttribute(sbbs->ssh_session, CRYPT_SESSINFO_SSH_CHANNEL, sbbs->sftp_channel); - if (cryptStatusError(status)) + if (cryptStatusError(status)) { + pthread_mutex_unlock(&sbbs->ssh_mutex); return false; + } size_t sendbytes = len - sent; #define SENDBYTES_MAX 0x2000 if (sendbytes > SENDBYTES_MAX) diff --git a/src/sftp/sftp_server.c b/src/sftp/sftp_server.c index 87bc9fa097..1d047b22a3 100644 --- a/src/sftp/sftp_server.c +++ b/src/sftp/sftp_server.c @@ -374,7 +374,7 @@ sftps_recv(sftps_state_t state, uint8_t *buf, uint32_t sz) uint32_t psz = sftp_pkt_sz(state->rxp); if (psz > SFTP_MAX_PACKET_SIZE) { state->lprintf(state->cb_data, "Packet too large (%" PRIu32 " bytes)", psz); - return false; + return exit_function(state, false); } } while (sftp_have_full_pkt(state->rxp)) { -- GitLab