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

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

 



On Sat, 2011-06-18 at 23:19 +0530, Aneesh Kumar K.V wrote:
> Use lstat instead of stat

This patch should probably come after 9p2000.u support is added, since
now we transparently work 'through' symlinks (because legacy 9p2000
doesn't support them).
Once 9p2000.u support is added we could represent symlinks and then a
switch to lstat might be due.

> 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);

-- 

Sasha.

--
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