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;