Tmp was not freed in case of errors in save_branch().

diff --git a/server/registry.c b/server/registry.c
index 5e97592..d4fca7e 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -1639,11 +1639,11 @@
         /* if successfully written, rename to final name */
         if (ret) ret = !rename( tmp, path );
         if (!ret) unlink( tmp );
-        free( tmp );
     }
 
 done:
-    if (real) free( real );
+    free( tmp );
+    free( real );
     if (ret) make_clean( key );
     return ret;
 }