about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/module.c6
2 files changed, 10 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c00076d4..b65cc2e6c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-29  Peter Stephenson  <p.w.stephenson@ntlworld.com>
+
+	* unposted: Src/module.c: failure adding autoload builtin
+	didn't clean up properly.
+
 2007-05-29  Peter Stephenson  <pws@csr.com>
 
 	* 23488: README, Etc/zsh-development-guide, Src/builtin.c,
diff --git a/Src/module.c b/Src/module.c
index c837193e8..05a0d402a 100644
--- a/Src/module.c
+++ b/Src/module.c
@@ -202,7 +202,11 @@ add_autobin(char *nam, char *module)
     Builtin bn = zshcalloc(sizeof(*bn));
     bn->node.nam = ztrdup(nam);
     bn->optstr = ztrdup(module);
-    return addbuiltin(bn);
+    if (addbuiltin(bn)) {
+	builtintab->freenode(&bn->node);
+	return 1;
+    }
+    return 0;
 }
 
 /* Remove the builtin added previously by addbuiltin().  Returns *