From af58f6feff781e8f07bdf09d8f1b9f5e4fa7aab3 Mon Sep 17 00:00:00 2001 From: Colin Percival Date: Mon, 9 Jun 2008 14:03:55 +0000 Subject: [PATCH] Rework code to avoid using a pointer after freeing it. Aside from the possibility of memory becoming undereferenceable when it is freed, this change should have no effect on bsdtar behaviour. Found by: Coverity Prevent --- usr.bin/tar/util.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/usr.bin/tar/util.c b/usr.bin/tar/util.c index 4ddcb0082b3..33281aae035 100644 --- a/usr.bin/tar/util.c +++ b/usr.bin/tar/util.c @@ -369,9 +369,11 @@ edit_pathname(struct bsdtar *bsdtar, struct archive_entry *entry) } if (r == 1) { archive_entry_copy_pathname(entry, subst_name); - free(subst_name); - if (*subst_name == '\0') + if (*subst_name == '\0') { + free(subst_name); return -1; + } else + free(subst_name); name = archive_entry_pathname(entry); }