diff --git a/doc/NEWS b/doc/NEWS index fe75c3c38..95a00afee 100644 --- a/doc/NEWS +++ b/doc/NEWS @@ -53,6 +53,7 @@ Version 4.8.29 * FISH subshell: commands don't work after window resize (#4372) * FTP VFS: doesn't reconnect to server after timeout (#3670) * FISH VFS: cannot remove non-empty directory (#4364) + * EXTFS VFS:: segfault if archive contains file(s) in the parent directory (#4422) * Tests: variable redeclaration in filevercmp_test5 (#4358) diff --git a/src/vfs/extfs/extfs.c b/src/vfs/extfs/extfs.c index c6c536bae..9c103d228 100644 --- a/src/vfs/extfs/extfs.c +++ b/src/vfs/extfs/extfs.c @@ -254,7 +254,7 @@ extfs_find_entry_int (struct vfs_s_inode *dir, const char *name, GSList * list, *q = '\0'; if (DIR_IS_DOTDOT (p)) - pent = pent->dir->ent; + pent = pent->dir != NULL ? pent->dir->ent : NULL; else { GList *pl; @@ -687,6 +687,8 @@ extfs_read_archive (mc_pipe_t * pip, struct extfs_super_t *archive, GError ** er g_string_free (err_msg, TRUE); } + else if (*error == NULL) + mc_propagate_error (error, 0, "%s", _("Inconsistent archive")); return ret; }