Many files:
  Change ext2fs_read_inode, ext2fs_write_inode to take the e2fsck
  context as their first argument.
  Change dir_info.c routines to take an e2fsck_context, renamed them to
  start with e2fsck_ to avoid namespace issues, and changed them to
  store the directory information inside the e2fsck context.
  Added e2fsck_run() which calls all of the e2fsck passes in the correct
  order, and which handles the return of abort codes.
  Added abort processing, both via setjmp/longjmp and via flags in the
  e2fsck context.
  Use a flag in the e2fsck context instead of the restart_e2fsck global
  variable.
  Change uses of free and malloc to ext2fs_free_mem and ext2fs_get_mem.

diff --git a/e2fsck/message.c b/e2fsck/message.c
index 673c463..e7bdd51 100644
--- a/e2fsck/message.c
+++ b/e2fsck/message.c
@@ -147,7 +147,7 @@
 		fputs("???", stdout);
 	else {
 		fputs(path, stdout);
-		free(path);
+		ext2fs_free_mem((void **) &path);
 	}
 }