diff --git a/xdu.c b/xdu.c index f8e6a12..434c1da 100644 --- a/xdu.c +++ b/xdu.c @@ -696,17 +696,21 @@ void printpath(int x, int y) { struct node *np; char* path; + char* tmp_path; np = findnode(&top, x, y); if (np == NULL) return; - path = np->name; + asprintf(&path, "%s", np->name); while(np->parent != NULL) { + tmp_path = path; asprintf(&path, "%s/%s", np->parent->name, path); np = np->parent; + free(tmp_path); } - path += 6; - printf("%s\n", path); + tmp_path = path + 6; + printf("%s\n", tmp_path); + free(path); } void reset(void)