Windows: AFSProcessUserFsRequest NULL dereference
[openafs.git] / src / WINNT / afsrdr / kernel / lib / AFSFSControl.cpp
index 6715c95..a892166 100644 (file)
@@ -172,6 +172,7 @@ AFSProcessUserFsRequest( IN PIRP Irp)
         pCcb = (AFSCcb *)pIrpSp->FileObject->FsContext2;
 
         if( pFcb == NULL ||
+            pCcb == NULL ||
             pCcb->DirectoryCB == NULL)
         {
 
@@ -683,7 +684,24 @@ AFSProcessUserFsRequest( IN PIRP Irp)
                 break;
             }
 
+#ifndef FSCTL_SET_PURGE_FAILURE_MODE
+#define FSCTL_SET_PURGE_FAILURE_MODE        CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 156, METHOD_BUFFERED, FILE_ANY_ACCESS)
+#endif
+
+            case FSCTL_SET_PURGE_FAILURE_MODE:
+            {
+
+                //
+                // For the time being just succeed this call
+                //
+
+                ntStatus = STATUS_SUCCESS;
+
+                break;
+            }
+
             default :
+            {
 
                 AFSDbgLogMsg( AFS_SUBSYSTEM_FILE_PROCESSING,
                               AFS_TRACE_LEVEL_VERBOSE_2,
@@ -692,6 +710,7 @@ AFSProcessUserFsRequest( IN PIRP Irp)
                 ntStatus = STATUS_INVALID_DEVICE_REQUEST;
 
                 break;
+            }
         }
 
 try_exit: