[PATCH 3/5] tools/kvm/9p: Don't follow symlink on server

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Use lstat instead of stat

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxxxxxxx>
---
 tools/kvm/virtio/9p.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/tools/kvm/virtio/9p.c b/tools/kvm/virtio/9p.c
index 209760b..3172c1a 100644
--- a/tools/kvm/virtio/9p.c
+++ b/tools/kvm/virtio/9p.c
@@ -227,7 +227,7 @@ static bool virtio_p9_open(struct p9_dev *p9dev, struct p9_msg *msg,
 	struct p9_fid *new_fid	= &p9dev->fids[topen->fid];
 	struct stat st;
 
-	if (stat(new_fid->abs_path, &st) < 0)
+	if (lstat(new_fid->abs_path, &st) < 0)
 		return false;
 
 	st2qid(&st, &ropen->qid);
@@ -274,7 +274,7 @@ static bool virtio_p9_create(struct p9_dev *p9dev, struct p9_msg *msg,
 		fid->fd = open(fid->abs_path, omode2uflags(mode) | O_CREAT, 0777);
 	}
 
-	if (stat(fid->abs_path, &st) < 0)
+	if (lstat(fid->abs_path, &st) < 0)
 		return false;
 
 	st2qid(&st, &rcreate->qid);
@@ -308,7 +308,7 @@ static bool virtio_p9_walk(struct p9_dev *p9dev, struct p9_msg *msg,
 			/* Format the new path we're 'walk'ing into */
 			sprintf(tmp, "%s/%.*s", fid->path, str->len, (char *)&str->str);
 
-			if (stat(rel_to_abs(p9dev, tmp, full_path), &st) < 0)
+			if (lstat(rel_to_abs(p9dev, tmp, full_path), &st) < 0)
 				break;
 
 			st2qid(&st, &rwalk->wqids[i]);
@@ -344,7 +344,7 @@ static bool virtio_p9_attach(struct p9_dev *p9dev, struct p9_msg *msg,
 	for (i = 0; i < VIRTIO_P9_MAX_FID; i++)
 		p9dev->fids[i].fid = P9_NOFID;
 
-	if (stat(p9dev->root_dir, &st) < 0)
+	if (lstat(p9dev->root_dir, &st) < 0)
 		return false;
 
 	st2qid(&st, &rattach->qid);
@@ -421,7 +421,7 @@ static bool virtio_p9_read(struct p9_dev *p9dev, struct p9_msg *msg,
 		while (cur) {
 			u32 read;
 
-			stat(rel_to_abs(p9dev, cur->d_name, full_path), &st);
+			lstat(rel_to_abs(p9dev, cur->d_name, full_path), &st);
 			read = virtio_p9_fill_stat(p9dev, cur->d_name,
 						   &st, rstat);
 			rread->count += read;
@@ -453,7 +453,7 @@ static bool virtio_p9_stat(struct p9_dev *p9dev, struct p9_msg *msg,
 	struct p9_fid *fid = &p9dev->fids[tstat->fid];
 	u32 ret;
 
-	if (stat(fid->abs_path, &st) < 0)
+	if (lstat(fid->abs_path, &st) < 0)
 		return false;
 
 	ret = virtio_p9_fill_stat(p9dev, fid->path, &st, rstat);
-- 
1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux