From 76bdcd94381b6e19f61df86bbf2af0a4bcea7782 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Wed, 26 Aug 2020 15:14:54 -0600 Subject: [PATCH] add error out when receiving a file larger than the buffer --- src/wolfscp.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/wolfscp.c b/src/wolfscp.c index 6e396ef..73340c2 100644 --- a/src/wolfscp.c +++ b/src/wolfscp.c @@ -2537,6 +2537,15 @@ int wsScpRecvCallback(WOLFSSH* ssh, int state, const char* basePath, /* read file, or file part */ sz = (bufSz < recvBuffer->bufferSz - recvBuffer->idx) ? bufSz : recvBuffer->bufferSz - recvBuffer->idx; + + if (recvBuffer->idx >= recvBuffer->bufferSz) { + wolfSSH_SetScpErrorMsg(ssh, + "buffer is not large enough for file"); + WLOG(WS_LOG_DEBUG, scpState, "SCP buffer too small for file"); + ret = WS_SCP_ABORT; + break; + } + WMEMCPY(recvBuffer->buffer + recvBuffer->idx, buf, sz); recvBuffer->idx += sz; recvBuffer->fileSz += sz;