--- ./source/private_module/smb1/smb_set_fileinfo.c	2020-04-14 10:18:24.199403428 +0000
+++ ./source/private_module/smb1/smb_set_fileinfo.c.hotpatch	2020-04-14 09:54:16.263403428 +0000
@@ -1641,9 +1641,9 @@
 
 static boolean_t smb_odir_empty(smb_request_t *sr, smb_node_t * node)
 {
-    smb_odir_t * od;
+    smb_odir_t * od = NULL;smb_odir_t * od_old = NULL;
     smb_odirent_t *odirent = NULL;
-    od = smb_odir_create(sr, node, "*", 0);
+    od_old = smb_odir_create(sr, node, "*", 0);if(od_old == NULL){return B_FALSE;}od = smb_tree_lookup_odir(sr->tid_tree, od_old->d_odid);
     if (od)
     {
         odirent = nas_zalloc((unsigned int)sizeof (smb_odirent_t));
@@ -1663,18 +1663,18 @@
             if (filecount > 2)
             {
                 nas_free(odirent);
-                smb_odir_delete(od);
+                smb_odir_close(od); smb_odir_release(od);
                 return B_FALSE;
             }
             nas_free(odirent);
-            smb_odir_delete(od);
+            smb_odir_close(od); smb_odir_release(od);
         }
         else
         {
-           smb_odir_delete(od);
+           smb_odir_close(od); smb_odir_release(od);
            return B_FALSE;
         }
-    }
+    }else {return B_FALSE;}
     return B_TRUE;
 }
 
@@ -1785,7 +1785,7 @@
         NAS_DBG(MOD_NAS_PROTO, LOG_DEBUG, "node flags %x", sinfo->si_node->flags);
         SMB1_CHECK_ERROR_CONDITION_RET_WITH_ERRCODE((sinfo->si_node->flags & NODE_FLAGS_DENNY_DELETE), NAS_ERROR, sr, NT_STATUS_CANNOT_DELETE, ERRDOS, ERROR_ACCESS_DENIED);
 #endif
-
+        if((sr->tid_tree && (sr->tid_tree->t_snode == sinfo->si_node))){sr->smb_error.severity = ERROR_SEVERITY_ERROR;sr->smb_error.status=NT_STATUS_ACCESS_DENIED;sr->smb_error.errcls=ERRDOS;sr->smb_error.errcode=ERROR_ACCESS_DENIED;smbsr_set_error(sr, &sr->smb_error);return NAS_ERROR;}
         if ((NULL != sinfo->si_node) && (NULL != sinfo->si_node->n_nep) )
         {
             NAS_DBG(MOD_NAS_PROTO, LOG_DEBUG, "sinfo->si_node->n_nep->ne_type:%d", sinfo->si_node->n_nep->ne_type);
--- ./source/private_module/smb1/smb_vops.c	2020-04-14 10:18:24.199403428 +0000
+++ ./source/private_module/smb1/smb_vops.c.hotpatch	2020-04-14 09:54:16.267403428 +0000
@@ -3141,7 +3141,7 @@
 
     NAS_TP_START(SMB_RDDIR_311_1_1, &tp_count);
     NAS_TP_END;
-
+    if (buf->dirent == NULL) {return (-EINVAL);}
     if ((SMB_VOP_READDIR_FLAG_TIMEOUT & buf->flags)
         && ((tp_count == buf->count) || ((get_jiffies_64() - buf->readdir_begin_time) / HZ > SMB_QUERY_DIR_TIMEOUT)))
     {
