diff --git a/lib/vfs/direntry.c b/lib/vfs/direntry.c index 0a039ef59..48690376d 100644 --- a/lib/vfs/direntry.c +++ b/lib/vfs/direntry.c @@ -1067,7 +1067,8 @@ vfs_s_get_path_mangle (struct vfs_class *me, char *inname, struct vfs_s_super ** ERRNOR (EIO, NULL); super = vfs_s_new_super (me); - result = MEDATA->open_archive (me, super, archive_name, op); + if (MEDATA->open_archive != NULL) + result = MEDATA->open_archive (me, super, archive_name, op); if (result == -1) { vfs_s_free_super (me, super); @@ -1198,6 +1199,7 @@ vfs_s_open (struct vfs_class *me, const char *file, int flags, mode_t mode) fh->handle = -1; fh->changed = was_changed; fh->linear = 0; + fh->data = NULL; if (IS_LINEAR (flags)) {