Module Name: src
Committed By: hannken
Date: Mon Dec 29 15:28:08 UTC 2014
Modified Files:
src/sys/fs/v7fs: v7fs_vnops.c
Log Message:
v7fs_getattr: adjust size of symlinks by -1 to compensate the trailing NUL.
Should fix the v7fs part of PR kern/48864.
To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/fs/v7fs/v7fs_vnops.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/fs/v7fs/v7fs_vnops.c
diff -u src/sys/fs/v7fs/v7fs_vnops.c:1.17 src/sys/fs/v7fs/v7fs_vnops.c:1.18
--- src/sys/fs/v7fs/v7fs_vnops.c:1.17 Fri Aug 8 19:15:33 2014
+++ src/sys/fs/v7fs/v7fs_vnops.c Mon Dec 29 15:28:08 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: v7fs_vnops.c,v 1.17 2014/08/08 19:15:33 gson Exp $ */
+/* $NetBSD: v7fs_vnops.c,v 1.18 2014/12/29 15:28:08 hannken Exp $ */
/*-
* Copyright (c) 2004, 2011 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.17 2014/08/08 19:15:33 gson Exp $");
+__KERNEL_RCSID(0, "$NetBSD: v7fs_vnops.c,v 1.18 2014/12/29 15:28:08 hannken Exp $");
#if defined _KERNEL_OPT
#include "opt_v7fs.h"
#endif
@@ -421,6 +421,11 @@ v7fs_getattr(void *v)
vap->va_fsid = v7fsmount->devvp->v_rdev;
vap->va_fileid = inode->inode_number;
vap->va_size = vp->v_size;
+ if (vp->v_type == VLNK) {
+ /* Ajust for trailing NUL. */
+ KASSERT(vap->va_size > 0);
+ vap->va_size -= 1;
+ }
vap->va_atime.tv_sec = inode->atime;
vap->va_mtime.tv_sec = inode->mtime;
vap->va_ctime.tv_sec = inode->ctime;