]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Windows: smb_ReceiveNTTranCreate path not found
authorJeffrey Altman <jaltman@your-file-system.com>
Wed, 20 Jul 2011 22:32:35 +0000 (18:32 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Tue, 2 Aug 2011 15:01:13 +0000 (08:01 -0700)
if the directory object cannot be found in the tree, return
CM_ERROR_PATHNOTFOUND instead of crashing.

Reviewed-on: http://gerrit.openafs.org/5061
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from 9c2d3180aa760d2a406bb68dd84e73f7d1ec7019)

Change-Id: I3150f9d5ee1e1d548b29161086ebcea21b2351cb
Reviewed-on: http://gerrit.openafs.org/5134
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
src/WINNT/afsd/smb3.c

index 9917dc5cbb33b97e5003afec32c3f0ed290133b5..777386ba3f6bbd4ed16d28576a312355c9fc2cd1 100644 (file)
@@ -8532,12 +8532,20 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out
                 cm_ReleaseSCache(scp);
                 cm_ReleaseSCache(dscp);
                 cm_ReleaseUser(userp);
+                cm_FreeSpace(spacep);
                 free(realPathp);
                 if (baseFidp)
                     smb_ReleaseFID(baseFidp);
                 return CM_ERROR_EXISTS;
             }
         }
+    } else {
+        cm_ReleaseUser(userp);
+        if (baseFidp)
+            smb_ReleaseFID(baseFidp);
+        cm_FreeSpace(spacep);
+        free(realPathp);
+        return CM_ERROR_NOSUCHPATH;
     }
 
     if (code == 0)