[PATCH] refs/reftable: fix leak when copying reflog fails

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



When copying a ref with the reftable backend we also copy the
corresponding log records. When seeking the first log record that we're
about to copy fails though we directly return from `write_copy_table()`
without doing any cleanup, leaking several allocated data structures.

Fix this by exiting via our common cleanup logic instead.

Reported-by: Jeff King <peff@xxxxxxxx> via Coverity
Signed-off-by: Patrick Steinhardt <ps@xxxxxx>
---
 refs/reftable-backend.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/refs/reftable-backend.c b/refs/reftable-backend.c
index 85214baa60..a14f2ad7f4 100644
--- a/refs/reftable-backend.c
+++ b/refs/reftable-backend.c
@@ -1503,7 +1503,7 @@ static int write_copy_table(struct reftable_writer *writer, void *cb_data)
 	 */
 	ret = reftable_merged_table_seek_log(mt, &it, arg->oldname);
 	if (ret < 0)
-		return ret;
+		goto done;
 
 	while (1) {
 		ret = reftable_iterator_next_log(&it, &old_log);
-- 
2.43.GIT

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux