Message ID | 1292908848-8381-1-git-send-email-harsh@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
On Tue, Dec 21, 2010 at 5:20 AM, Harsh Prateek Bora <harsh@linux.vnet.ibm.com> wrote: > This patch removes the addition of null char in symlink file > which is being appended to file in case of mapped security model. > Without this patch, the extra null char causes LTP testcase lstat03 > to fail and hence this fix is required. Looks good. Related note: local_readlink() with fs_sm == SM_MAPPED reads the contents of *any* file. I don't see a check that the file is actually a symlink. What if an application relies on the EINVAL return value when calling readlink() on something that is not a file (not sure how this maps through to 9p though)? Stefan
On 12/20/2010 11:51 PM, Stefan Hajnoczi wrote: > On Tue, Dec 21, 2010 at 5:20 AM, Harsh Prateek Bora > <harsh@linux.vnet.ibm.com> wrote: >> This patch removes the addition of null char in symlink file >> which is being appended to file in case of mapped security model. >> Without this patch, the extra null char causes LTP testcase lstat03 >> to fail and hence this fix is required. > > Looks good. > > Related note: local_readlink() with fs_sm == SM_MAPPED reads the > contents of *any* file. I don't see a check that the file is actually > a symlink. What if an application relies on the EINVAL return value > when calling readlink() on something that is not a file (not sure how > this maps through to 9p though)? Stefan, yes. This is a bug we realized .. fix will be on the way shortly. :) Thanks, JV > > Stefan >
diff --git a/hw/virtio-9p-local.c b/hw/virtio-9p-local.c index 656bfb3..3b6447d 100644 --- a/hw/virtio-9p-local.c +++ b/hw/virtio-9p-local.c @@ -370,7 +370,7 @@ static int local_symlink(FsContext *fs_ctx, const char *oldpath, return fd; } /* Write the oldpath (target) to the file. */ - oldpath_size = strlen(oldpath) + 1; + oldpath_size = strlen(oldpath); do { write_size = write(fd, (void *)oldpath, oldpath_size); } while (write_size == -1 && errno == EINTR);
This patch removes the addition of null char in symlink file which is being appended to file in case of mapped security model. Without this patch, the extra null char causes LTP testcase lstat03 to fail and hence this fix is required. v2: - Description updated to mention about LTP lstat testcase failure without this patch. Signed-off-by: Harsh Prateek Bora <harsh@linux.vnet.ibm.com> --- hw/virtio-9p-local.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)