diff options
author | afshin salek ardakani - Sun Microsystems - Irvine United States <Afshin.Ardakani@Sun.COM> | 2009-05-06 15:10:25 -0700 |
---|---|---|
committer | afshin salek ardakani - Sun Microsystems - Irvine United States <Afshin.Ardakani@Sun.COM> | 2009-05-06 15:10:25 -0700 |
commit | 6e3e9d9c7ec812d402e1c911922ec43d4047dec8 (patch) | |
tree | 870c2cb390d24e76db01d54b2f9f02410de4220a /usr/src | |
parent | 0aea4b19873599c9a11db600b90263c7233db953 (diff) | |
download | illumos-joyent-6e3e9d9c7ec812d402e1c911922ec43d4047dec8.tar.gz |
6837197 VFS_ROOT return value should be checked in smb_vss_lookup_nodes
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/fs/smbsrv/smb_vss.c | 13 |
1 files changed, 6 insertions, 7 deletions
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'; |