printf("creating tar ball of \"%s\"\n", argv[1]);       
 
        /* creating tar of the module dependencies */
-       deps = get_deps(NULL, argv[1]);
+       deps = get_deps(talloc_autofree_context(), argv[1]);
        if (deps != NULL)
                create_tar(deps, argv[1], argv[2]);
        talloc_free(deps);
 
 
 static void adjust_dir(const char *dir)
 {
-       char *parent = parent_dir(NULL, dir);
+       char *parent = parent_dir(talloc_autofree_context(), dir);
        char **deps;
 
        verbose("Adjusting %s\n", dir);
                talloc_free(depdir);
        }
        verbose_unindent();
+       talloc_free(parent);
 }
 
 static void adjust_dependents(const char *dir)
 
        char *externals = talloc_strdup(name, "");
        char **deps;
 
-       for (deps = get_deps(objs, dir); *deps; deps++) {
+       for (deps = get_deps(talloc_autofree_context(), dir); *deps; deps++) {
                if (!strstarts(*deps, "ccan/"))
                        continue;