pastebin - collaborative debugging tool
nrubsig.kpaste.net RSS


Code using |QueueUserAPC()| which triggers kernel crash in |nfs41_downcall()|
Posted by Anonymous on Wed 24th Jul 2024 12:46
raw | new post
modification of post by Anonymous (view diff)

  1. diff --git a/daemon/nfs41_daemon.c b/daemon/nfs41_daemon.c
  2. index 8f30607..87ecedb 100644
  3. --- a/daemon/nfs41_daemon.c
  4. +++ b/daemon/nfs41_daemon.c
  5. @@ -125,6 +125,11 @@ out_map_default_ids:
  6.      goto out;
  7.  }
  8.  
  9. +static VOID apc_code(IN ULONG_PTR dwData)
  10. +{
  11. +       DPRINTF(0, ("Hello from apc_code()!\n"));
  12. +}      
  13. +                                                                                                                                                                                                                        
  14.  static unsigned int nfsd_worker_thread_main(void *args)                                                                                                                                                                
  15.  {                                                                                                                                                                                                                      
  16.      nfs41_daemon_globals *nfs41dg = (nfs41_daemon_globals *)args;                                                                                                                                                      
  17. @@ -136,6 +141,10 @@ static unsigned int nfsd_worker_thread_main(void *args)                                                                                                                                            
  18.      DWORD inbuf_len = UPCALL_BUF_SIZE, outbuf_len;                                                                                                                                                                      
  19.      nfs41_upcall upcall;                                                                                                                                                                                                
  20.                                                                                                                                                                                                                          
  21. +#if 1                                                                                                                                                                                                                  
  22. +    QueueUserAPC((PAPCFUNC)apc_code, GetCurrentThread(), (ULONG_PTR)args);                                                                                                                                              
  23. +#endif                                                                                                                                                                                                                  
  24. +                                                                                                                                                                                                                        
  25.      pipe = CreateFileA(NFS41_USER_DEVICE_NAME_A, GENERIC_READ | GENERIC_WRITE,                                                                                                                                          
  26.          FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,                                                                                                                                                        
  27.          0, NULL);                                                                                                                                                                                                      
  28. @@ -826,6 +835,10 @@ VOID ServiceStart(DWORD argc, LPTSTR *argv)                                                                                                                                                        
  29.       */                                                                                                                                                                                                                
  30.      logprintf("nfsd is running.\n");                                                                                                                                                                                    
  31.                                                                                                                                                                                                                          
  32. +#if 0                                                                                                                                                                                                                  
  33. +    QueueUserAPC((PAPCFUNC)apc_code, GetCurrentThread(), (ULONG_PTR)&nfs41_dg);                                                                                                                                        
  34. +#endif                                                                                                                                                                                                                  
  35. +                                                                                                                                                                                                                        
  36.  #ifndef STANDALONE_NFSD                                                                                                                                                                                                
  37.      // report the status to the service control manager.                                                                                                                                                                
  38.      if (!ReportStatusToSCMgr(SERVICE_RUNNING, NO_ERROR, 0))

Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at