From c3dc7294670c91af89e0122c6979de70c63ce4f7 Mon Sep 17 00:00:00 2001
From: Sergey Poznyakoff <gray@gnu.org>
Date: Sat, 18 Jun 2022 17:35:35 +0300
Subject: Fix https://puszcza.gnu.org.ua/bugs/index.php?563

---
 src/gdbmshell.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/gdbmshell.c b/src/gdbmshell.c
index 12fc2bd..4ab2660 100644
--- a/src/gdbmshell.c
+++ b/src/gdbmshell.c
@@ -1232,6 +1232,7 @@ snapshot_handler (struct command_param *param, struct command_environ *cenv)
   char *sb = tildexpand (PARAM_STRING (param, 1));
   char const *sel;
   int rc = gdbm_latest_snapshot (sa, sb, &sel); 
+  int res;
 
   if (rc >= 0 && rc < ARRAY_SIZE (snapshot_status_info))
     {
@@ -1243,13 +1244,17 @@ snapshot_handler (struct command_param *param, struct command_environ *cenv)
 	snapshot_status_info[rc].fn (cenv->fp, sa, sb);
       if (rc == GDBM_SNAPSHOT_OK)
 	print_snapshot (sel, cenv->fp);
+      res = GDBMSHELL_OK;
     }
   else
     {
       terror (_("unexpected error code: %d"), rc);
-      return GDBMSHELL_ERR;
+      res = GDBMSHELL_ERR;
     }
-  return GDBMSHELL_OK;
+
+  free (sa);
+  free (sb);
+  return res;
 }
 
 
-- 
2.36.1

