mirror of
https://github.com/genodelabs/genode.git
synced 2025-03-11 15:04:20 +00:00
server/vfs: fix file leaf path pointer
Directory_service::leaf_path returns a pointer offset from its argument so pass member data rather than a constructor argument to leaf_path. Issue #1775
This commit is contained in:
parent
c48e13e1c0
commit
b80428abf6
@ -126,4 +126,4 @@ namespace File_system {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif /* _VFS__ASSERT_H_ */
|
||||||
|
@ -131,6 +131,7 @@ class Vfs_server::File : public Node
|
|||||||
char const *_leaf_path; /* offset pointer to Node::_path */
|
char const *_leaf_path; /* offset pointer to Node::_path */
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
File(Vfs::File_system &vfs,
|
File(Vfs::File_system &vfs,
|
||||||
Genode::Allocator &alloc,
|
Genode::Allocator &alloc,
|
||||||
char const *file_path,
|
char const *file_path,
|
||||||
@ -142,7 +143,7 @@ class Vfs_server::File : public Node
|
|||||||
(fs_mode-1) | (create ? Vfs::Directory_service::OPEN_MODE_CREATE : 0);
|
(fs_mode-1) | (create ? Vfs::Directory_service::OPEN_MODE_CREATE : 0);
|
||||||
|
|
||||||
assert_open(vfs.open(file_path, vfs_mode, &_handle, alloc));
|
assert_open(vfs.open(file_path, vfs_mode, &_handle, alloc));
|
||||||
_leaf_path = vfs.leaf_path(file_path);
|
_leaf_path = vfs.leaf_path(path());
|
||||||
}
|
}
|
||||||
|
|
||||||
~File() { _handle->ds().close(_handle); }
|
~File() { _handle->ds().close(_handle); }
|
||||||
@ -289,5 +290,4 @@ struct Vfs_server::Directory : Node
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#endif /* _VFS__NODE_H_ */
|
||||||
#endif
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user