From 17b7703dab5c153a2cca465a77b1fc97545bdd6b Mon Sep 17 00:00:00 2001 From: "Bernhard M. Wiedemann" Date: Sun, 8 Oct 2023 04:52:24 +0200 Subject: [PATCH] Fix compilation without LTO When building without link-time-optimization through the KITTY_NO_LTO env var or the setup.py --disable-link-time-optimization option compilation failed with a warning about freeing "ans" memory. Chances are, this is dead code that gets optimized out by LTO. --- kittens/transfer/algorithm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kittens/transfer/algorithm.c b/kittens/transfer/algorithm.c index 7ee9bba6e..4c160260b 100644 --- a/kittens/transfer/algorithm.c +++ b/kittens/transfer/algorithm.c @@ -110,9 +110,9 @@ init_rsync(Rsync *ans, size_t block_size, int strong_hash_type, int checksum_typ ans->hasher = ans->hasher_constructor(); ans->checksummer = ans->checksummer_constructor(); ans->hasher.state = ans->hasher.new(); - if (ans->hasher.state == NULL) { free(ans); return "Out of memory"; } + if (ans->hasher.state == NULL) { free_rsync(ans); return "Out of memory"; } ans->checksummer.state = ans->checksummer.new(); - if (ans->checksummer.state == NULL) { free(ans); return "Out of memory"; } + if (ans->checksummer.state == NULL) { free_rsync(ans); return "Out of memory"; } return NULL; }