summaryrefslogtreecommitdiffstats
path: root/sys/nwfs
diff options
context:
space:
mode:
authorbp <bp@FreeBSD.org>1999-10-14 09:35:37 +0000
committerbp <bp@FreeBSD.org>1999-10-14 09:35:37 +0000
commit8e28bcd1a90381a8f303b8f38ae889fa641df42f (patch)
tree75fa295c865498255f0305585cc9c549d2f723c5 /sys/nwfs
parent40a263bd52489f340c28c190ecd71c2b54e89198 (diff)
downloadFreeBSD-src-8e28bcd1a90381a8f303b8f38ae889fa641df42f.zip
FreeBSD-src-8e28bcd1a90381a8f303b8f38ae889fa641df42f.tar.gz
Under some condition vnode can reference itself.
Diffstat (limited to 'sys/nwfs')
-rw-r--r--sys/nwfs/nwfs.h1
-rw-r--r--sys/nwfs/nwfs_vnops.c5
2 files changed, 5 insertions, 1 deletions
diff --git a/sys/nwfs/nwfs.h b/sys/nwfs/nwfs.h
index 950d18a..51ae76b 100644
--- a/sys/nwfs/nwfs.h
+++ b/sys/nwfs/nwfs.h
@@ -35,6 +35,7 @@
#ifndef _NWFS_H_
#define _NWFS_H_
+#include <netncp/ncp.h>
#include <nwfs/nwfs_mount.h>
#define NR_OPEN 0
diff --git a/sys/nwfs/nwfs_vnops.c b/sys/nwfs/nwfs_vnops.c
index 61163b0..d084503 100644
--- a/sys/nwfs/nwfs_vnops.c
+++ b/sys/nwfs/nwfs_vnops.c
@@ -1043,8 +1043,11 @@ printf("dvp %d:%d:%d\n", (int)mp, (int)dvp->v_flag & VROOT, (int)flags & ISDOTDO
fap = &fattr;
notfound = ncp_lookup(dvp, cnp->cn_namelen, cnp->cn_nameptr,
fap, p, cnp->cn_cred);
- fid.f_parent = dnp->n_fid.f_id;
fid.f_id = fap->dirEntNum;
+ if (cnp->cn_namelen == 1 && cnp->cn_nameptr[0] == '.') {
+ fid.f_parent = dnp->n_fid.f_parent;
+ } else
+ fid.f_parent = dnp->n_fid.f_id;
NCPVNDEBUG("call to ncp_lookup returned=%d\n",notfound);
}
if (notfound && notfound < 0x80 )
OpenPOWER on IntegriCloud