From 6e3e9d9c7ec812d402e1c911922ec43d4047dec8 Mon Sep 17 00:00:00 2001 From: afshin salek ardakani - Sun Microsystems - Irvine United States Date: Wed, 6 May 2009 15:10:25 -0700 Subject: 6837197 VFS_ROOT return value should be checked in smb_vss_lookup_nodes --- usr/src/uts/common/fs/smbsrv/smb_vss.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'usr/src') diff --git a/usr/src/uts/common/fs/smbsrv/smb_vss.c b/usr/src/uts/common/fs/smbsrv/smb_vss.c index 444e8e8c77..f5b021ab63 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_vss.c +++ b/usr/src/uts/common/fs/smbsrv/smb_vss.c @@ -144,7 +144,7 @@ smb_vss_lookup_nodes(smb_request_t *sr, smb_node_t *root_node, char *snapname; char *nodepath; char gmttoken[SMB_VSS_GMT_SIZE]; - smb_attr_t attr; + smb_attr_t attr; vnode_t *fsrootvp; vnode_t *vp = NULL; int err = 0; @@ -156,15 +156,15 @@ smb_vss_lookup_nodes(smb_request_t *sr, smb_node_t *root_node, ASSERT(sr->tid_tree->t_snode->vp); ASSERT(sr->tid_tree->t_snode->vp->v_vfsp); - p = smb_vss_find_gmttoken(buf); - - if (!p) + if ((p = smb_vss_find_gmttoken(buf)) == NULL) return (ENOENT); bcopy(p, gmttoken, SMB_VSS_GMT_SIZE); gmttoken[SMB_VSS_GMT_SIZE - 1] = '\0'; - (void) VFS_ROOT(sr->tid_tree->t_snode->vp->v_vfsp, &fsrootvp); + err = VFS_ROOT(sr->tid_tree->t_snode->vp->v_vfsp, &fsrootvp); + if (err != 0) + return (err); rootpath = kmem_alloc(MAXPATHLEN, KM_SLEEP); snapname = kmem_alloc(MAXNAMELEN, KM_SLEEP); @@ -172,9 +172,8 @@ smb_vss_lookup_nodes(smb_request_t *sr, smb_node_t *root_node, err = smb_vss_get_fsmountpath(sr, rootpath, MAXPATHLEN); - if (err != 0) { + if (err != 0) goto error; - } *snapname = '\0'; -- cgit v1.2.3