[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [V4 PATCH 3/8] Add client side interfaces for chroot en
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] Re: [V4 PATCH 3/8] Add client side interfaces for chroot environment |
Date: |
Wed, 2 Feb 2011 09:54:16 +0000 |
On Tue, Feb 1, 2011 at 5:26 AM, M. Mohan Kumar <address@hidden> wrote:
> +/* Receive file descriptor and error status from chroot process */
> +static int v9fs_receivefd(int sockfd, int *error)
The return value and int *error overlap in functionality. Would it be
possible to have only one mechanism for returning errors?
*error = 0 is never done so a caller that passes an uninitialized
local variable gets back junk when the function succeeds. It would be
safer to clear it at the start of this function.
Inconsistent use of errno constants and -1:
return -EIO;
return -1; /* == -EPERM, probably not what you wanted */
How about getting rid of int *error and returning the -errno? If
if_error is set then return -fd_info.error.
> +/*
> + * V9fsFileObjectRequest is written into the socket by QEMU process.
> + * Then this request is read by chroot process using read_request function
> + */
> +static int v9fs_write_request(int sockfd, V9fsFileObjectRequest *request)
> +{
> + int retval, length;
> + char *buff, *buffp;
> +
> + length = sizeof(request->data) + request->data.path_len +
> + request->data.oldpath_len;
> +
> + buff = qemu_malloc(length);
> + buffp = buff;
> + memcpy(buffp, &request->data, sizeof(request->data));
> + buffp += sizeof(request->data);
> + memcpy(buffp, request->path.path, request->data.path_len);
> + buffp += request->data.path_len;
> + memcpy(buffp, request->path.old_path, request->data.oldpath_len);
> +
> + retval = qemu_write_full(sockfd, buff, length);
qemu_free(buff);
Also, weren't you doing the malloc() + single write() to avoid
interleaved write()? Is that still necessary, I thought a mutex was
introduced? It's probably worth adding a comment to explain why
you're doing the malloc + write.
Stefan
- [Qemu-devel] [V4 PATCH 0/8] virtio-9p: Use chroot to safely access files in passthrough security model, M. Mohan Kumar, 2011/02/01
- [Qemu-devel] [V4 PATCH 3/8] Add client side interfaces for chroot environment, M. Mohan Kumar, 2011/02/01
- [Qemu-devel] Re: [V4 PATCH 3/8] Add client side interfaces for chroot environment,
Stefan Hajnoczi <=
- [Qemu-devel] [V4 PATCH 4/8] Add support to open a file in chroot environment, M. Mohan Kumar, 2011/02/01
- [Qemu-devel] [V4 PATCH 5/8] Create support in chroot environment, M. Mohan Kumar, 2011/02/01
- [Qemu-devel] [V4 PATCH 6/8] Support for creating special files, M. Mohan Kumar, 2011/02/01
- [Qemu-devel] [V4 PATCH 7/8] Move file post creation changes to none security model, M. Mohan Kumar, 2011/02/01
- [Qemu-devel] [V4 PATCH 8/8] Chroot environment for other functions, M. Mohan Kumar, 2011/02/01