From 4bf3165a559fe334e6ebb719d8255069bd8103da Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net>
Date: Fri, 29 Dec 2023 12:50:12 -0500
Subject: [PATCH] Fix issue found by coverity.

---
 src/sftp/sftp_pkt.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/sftp/sftp_pkt.c b/src/sftp/sftp_pkt.c
index c567740efc..131716f591 100644
--- a/src/sftp/sftp_pkt.c
+++ b/src/sftp/sftp_pkt.c
@@ -314,10 +314,20 @@ sftp_append64(sftp_tx_pkt_t *pktp, uint64_t u64)
 bool
 sftp_appendstring(sftp_tx_pkt_t *pktp, sftp_str_t s)
 {
+	uint32_t oldused;
+
 	assert(pktp);
-	sftp_append32(pktp, s->len);
-	if (!grow_tx(pktp, s->len))
+	if (*pktp == NULL)
+		oldused = 0;
+	else
+		oldused = (*pktp)->used;
+	if (!sftp_append32(pktp, s->len))
+		return false;
+	if (!grow_tx(pktp, s->len)) {
+		if (*pktp != NULL)
+			(*pktp)->used = oldused;
 		return false;
+	}
 	sftp_tx_pkt_t pkt = *pktp;
 	memcpy(&(&pkt->type)[pkt->used], (uint8_t *)s->c_str, s->len);
 	pkt->used += s->len;
-- 
GitLab