qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kurz <groug@kaod.org>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	Greg Kurz <groug@kaod.org>
Subject: [Qemu-devel] [PULL 13/13] tests: virtio-9p: ".." cannot be used to walk out of the shared directory
Date: Wed,  4 Jan 2017 09:21:47 +0100	[thread overview]
Message-ID: <1483518107-13218-14-git-send-email-groug@kaod.org> (raw)
In-Reply-To: <1483518107-13218-1-git-send-email-groug@kaod.org>

According to the 9P spec at http://man.cat-v.org/plan_9/5/intro, the
parent directory of the root directory of a server's tree is itself.
This test hence checks that the qid of the root directory as returned by
attach is the same as the qid of ".." when walking from the root directory.

Signed-off-by: Greg Kurz <groug@kaod.org>
---
 tests/virtio-9p-test.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/tests/virtio-9p-test.c b/tests/virtio-9p-test.c
index 83cb23b3afc7..060407b20e39 100644
--- a/tests/virtio-9p-test.c
+++ b/tests/virtio-9p-test.c
@@ -450,6 +450,25 @@ static void fs_walk_no_slash(QVirtIO9P *v9p)
     g_free(wnames[0]);
 }
 
+static void fs_walk_dotdot(QVirtIO9P *v9p)
+{
+    char *const wnames[] = { g_strdup("..") };
+    v9fs_qid root_qid, *wqid;
+    P9Req *req;
+
+    fs_version(v9p);
+    req = v9fs_tattach(v9p, 0, getuid());
+    v9fs_rattach(req, &root_qid);
+
+    req = v9fs_twalk(v9p, 0, 1, 1, wnames);
+    v9fs_rwalk(req, NULL, &wqid); /* We now we'll get one qid */
+
+    g_assert_cmpmem(&root_qid, 13, wqid[0], 13);
+
+    g_free(wqid);
+    g_free(wnames[0]);
+}
+
 typedef void (*v9fs_test_fn)(QVirtIO9P *v9p);
 
 static void v9fs_run_pci_test(gconstpointer data)
@@ -477,6 +496,8 @@ int main(int argc, char **argv)
     v9fs_qtest_pci_add("/virtio/9p/pci/fs/attach/basic", fs_attach);
     v9fs_qtest_pci_add("/virtio/9p/pci/fs/walk/basic", fs_walk);
     v9fs_qtest_pci_add("/virtio/9p/pci/fs/walk/no_slash", fs_walk_no_slash);
+    v9fs_qtest_pci_add("/virtio/9p/pci/fs/walk/dotdot_from_root",
+                       fs_walk_dotdot);
 
     return g_test_run();
 }
-- 
2.7.4

  parent reply	other threads:[~2017-01-04  8:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-04  8:21 [Qemu-devel] [PULL 00/13] 9p patches 20170104 Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 01/13] 9pfs: move pdus to V9fsState Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 02/13] 9pfs: introduce transport specific callbacks Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 03/13] 9pfs: call v9fs_init_qiov_from_pdu before v9fs_pack Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 04/13] 9pfs: introduce init_out/in_iov_from_pdu Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 05/13] 9pfs: fix crash when fsdev is missing Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 06/13] tests: virtio-9p: rename PCI configuration test Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 07/13] tests: virtio-9p: code refactoring Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 08/13] 9pfs: fix P9_NOTAG and P9_NOFID macros Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 09/13] tests: virtio-9p: add version operation test Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 10/13] tests: virtio-9p: add attach " Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 11/13] tests: virtio-9p: add walk " Greg Kurz
2017-01-04  8:21 ` [Qemu-devel] [PULL 12/13] tests: virtio-9p: no slash in path elements during walk Greg Kurz
2017-01-04  8:21 ` Greg Kurz [this message]
2017-01-05 12:44 ` [Qemu-devel] [PULL 00/13] 9p patches 20170104 Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1483518107-13218-14-git-send-email-groug@kaod.org \
    --to=groug@kaod.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).