From 95a8351a75758cf10b3bf6abae0b6b461f90d9e5 Mon Sep 17 00:00:00 2001 From: Morten Welinder <terra@gnome.org> Date: Fri, 2 Dec 2016 22:19:54 -0500 Subject: [PATCH] tar: fix crash on broken tar file. --- gsf/gsf-infile-tar.c | 4 +++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/gsf/gsf-infile-tar.c b/gsf/gsf-infile-tar.c index 271595d..17513fe 100644 --- a/gsf/gsf-infile-tar.c +++ b/gsf/gsf-infile-tar.c @@ -181,9 +181,11 @@ tar_directory_for_file (GsfInfileTar *dir, const char *name, gboolean last) gsf_infile_child_by_name (GSF_INFILE (dir), dirname); if (subdir) { + dir = GSF_IS_INFILE_TAR (subdir) + ? GSF_INFILE_TAR (subdir) + : dir; /* Undo the ref. */ g_object_unref (subdir); - dir = GSF_INFILE_TAR (subdir); } else dir = tar_create_dir (dir, dirname); } -- 2.9.3