summaryrefslogtreecommitdiff
path: root/src/compgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compgen.c')
-rw-r--r--src/compgen.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/compgen.c b/src/compgen.c
index 4e91fda..af8050d 100644
--- a/src/compgen.c
+++ b/src/compgen.c
@@ -125,11 +125,10 @@ char *compgen_cached()
if (stat(cache_path, &sb) == -1) {
if (errno == ENOENT) {
char *commands = compgen();
- if (!mkdirp(cache_path)) {
- free(cache_path);
- return commands;
+ if (mkdirp(cache_path)) {
+ write_cache(commands, cache_path);
}
- write_cache(commands, cache_path);
+ free(cache_path);
return commands;
}
free(cache_path);
@@ -224,6 +223,8 @@ char *compgen()
}
buf[bytes_written] = '\0';
+ string_vec_destroy(&programs);
+
return buf;
}