summaryrefslogtreecommitdiffstats
path: root/fsdev
diff options
context:
space:
mode:
authorPeter Maydell2017-06-01 13:06:58 +0200
committerPeter Maydell2017-06-01 13:06:58 +0200
commit066ae4f829bcc6b8c98994a7c22fe570d500d548 (patch)
treeac7258ee8e5a24dd358d838bb103aaa36144be4f /fsdev
parentMerge remote-tracking branch 'remotes/ehabkost/tags/numa-pull-request' into s... (diff)
parent9pfs: local: metadata file for the VirtFS root (diff)
downloadqemu-066ae4f829bcc6b8c98994a7c22fe570d500d548.tar.gz
qemu-066ae4f829bcc6b8c98994a7c22fe570d500d548.tar.xz
qemu-066ae4f829bcc6b8c98994a7c22fe570d500d548.zip
Merge remote-tracking branch 'remotes/gkurz/tags/for-upstream' into staging
Various bugfixes and code cleanups. Most notably, it fixes metadata handling in mapped-file security mode (especially for the virtfs root). # gpg: Signature made Tue 30 May 2017 14:36:22 BST # gpg: using DSA key 0x02FC3AEB0101DBC2 # gpg: Good signature from "Greg Kurz <groug@kaod.org>" # gpg: aka "Greg Kurz <groug@free.fr>" # gpg: aka "Greg Kurz <gkurz@linux.vnet.ibm.com>" # gpg: aka "Gregory Kurz (Groug) <groug@free.fr>" # gpg: aka "[jpeg image of size 3330]" # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 2BD4 3B44 535E C0A7 9894 DBA2 02FC 3AEB 0101 DBC2 * remotes/gkurz/tags/for-upstream: 9pfs: local: metadata file for the VirtFS root 9pfs: local: simplify file opening 9pfs: local: resolve special directories in paths 9pfs: check return value of v9fs_co_name_to_path() util: drop old utimensat() compat code 9pfs: assume utimensat() and futimens() are present fsdev: fix virtfs-proxy-helper cwd 9pfs: local: fix unlink of alien files in mapped-file mode 9pfs: drop pdu_push_and_notify() fsdev: don't allow unknown format in marshal/unmarshal virtio-9p/xen-9p: move 9p specific bits to core 9p code Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'fsdev')
-rw-r--r--fsdev/9p-iov-marshal.c4
-rw-r--r--fsdev/virtfs-proxy-helper.c11
2 files changed, 8 insertions, 7 deletions
diff --git a/fsdev/9p-iov-marshal.c b/fsdev/9p-iov-marshal.c
index 1d16f8df4b..a1c9beddd2 100644
--- a/fsdev/9p-iov-marshal.c
+++ b/fsdev/9p-iov-marshal.c
@@ -168,7 +168,7 @@ ssize_t v9fs_iov_vunmarshal(struct iovec *out_sg, int out_num, size_t offset,
break;
}
default:
- break;
+ g_assert_not_reached();
}
if (copied < 0) {
return copied;
@@ -281,7 +281,7 @@ ssize_t v9fs_iov_vmarshal(struct iovec *in_sg, int in_num, size_t offset,
break;
}
default:
- break;
+ g_assert_not_reached();
}
if (copied < 0) {
return copied;
diff --git a/fsdev/virtfs-proxy-helper.c b/fsdev/virtfs-proxy-helper.c
index 54f7ad1c48..6c066ec9a0 100644
--- a/fsdev/virtfs-proxy-helper.c
+++ b/fsdev/virtfs-proxy-helper.c
@@ -945,7 +945,8 @@ static int process_requests(int sock)
&spec[0].tv_sec, &spec[0].tv_nsec,
&spec[1].tv_sec, &spec[1].tv_nsec);
if (retval > 0) {
- retval = qemu_utimens(path.data, spec);
+ retval = utimensat(AT_FDCWD, path.data, spec,
+ AT_SYMLINK_NOFOLLOW);
if (retval < 0) {
retval = -errno;
}
@@ -1129,14 +1130,14 @@ int main(int argc, char **argv)
}
}
- if (chdir("/") < 0) {
- do_perror("chdir");
- goto error;
- }
if (chroot(rpath) < 0) {
do_perror("chroot");
goto error;
}
+ if (chdir("/") < 0) {
+ do_perror("chdir");
+ goto error;
+ }
get_version = false;
#ifdef FS_IOC_GETVERSION