diff --git a/src/vfs/tar/tar.c b/src/vfs/tar/tar.c index 9c7451674..c411e31d3 100644 --- a/src/vfs/tar/tar.c +++ b/src/vfs/tar/tar.c @@ -293,11 +293,14 @@ tar_skip_member (tar_super_t * archive, struct vfs_s_inode *inode) (void) tar_sparse_skip_file (archive, ¤t_stat_info); - /* use vfs_s_inode::user_data to keep the sparse map */ - inode->user_data = current_stat_info.sparse_map; - current_stat_info.sparse_map = NULL; + if (inode != NULL) + { + /* use vfs_s_inode::user_data to keep the sparse map */ + inode->user_data = current_stat_info.sparse_map; + current_stat_info.sparse_map = NULL; - tar_calc_sparse_offsets (inode); + tar_calc_sparse_offsets (inode); + } } else if (save_typeflag != DIRTYPE) {