Commit graph

151 commits

Author SHA1 Message Date
Cameron Gutman 1c3484cdd1 - Make sure we don't complete with STATUS_SUCCESS if MmMapLockedPages fails
- Move and enable MmUnlockPages and IoFreeMdl

svn path=/branches/aicom-network-fixes/; revision=35446
2008-08-19 04:36:05 +00:00
Cameron Gutman 6b5a88dd52 - Use the correct ioctl
svn path=/branches/aicom-network-fixes/; revision=35439
2008-08-18 23:41:23 +00:00
Cameron Gutman bd043fd1cf - Call MmProbeAndLockPages for SysMdl
svn path=/branches/aicom-network-fixes/; revision=35431
2008-08-18 14:00:27 +00:00
Cameron Gutman 8b67a0b644 - Change STATUS_UNSUCCESSFUL to STATUS_FILE_CLOSED
- Move the Irp->Cancel check after SocketAcquireStateLock to fix a possible crash
 - Change STATUS_INVALID_PARAMETER to STATUS_FILE_CLOSED
 - Move SocketAcquireStateLock in front of the check for a NULL return from LockRequest to prevent another possible crash

svn path=/branches/aicom-network-fixes/; revision=35419
2008-08-17 22:12:31 +00:00
Cameron Gutman ec037e4d9d - Call SocketStateUnlock before returning
- Don't complete the IRP again in the completion routine

svn path=/branches/aicom-network-fixes/; revision=35418
2008-08-17 21:48:09 +00:00
Cameron Gutman 54a02c3ea8 - Make sure we successfully allocated ConnectionReturnInfo and ConnectionCallInfo
- Make sure ObReferenceObjectByHandle was successful

svn path=/branches/aicom-network-fixes/; revision=35398
2008-08-16 21:16:41 +00:00
Cameron Gutman 05a4dffa6e - Move SocketAcquireStateLock out of SEH
svn path=/branches/aicom-network-fixes/; revision=35393
2008-08-16 15:06:12 +00:00
Cameron Gutman 3f184e689d - Move MmUnlockPages to the proper place (still commented out though)
svn path=/branches/aicom-network-fixes/; revision=35391
2008-08-16 14:23:58 +00:00
Cameron Gutman 0c3f9f9d05 - Fix another memory leak
svn path=/branches/aicom-network-fixes/; revision=35385
2008-08-16 11:59:54 +00:00
Cameron Gutman 19d28c4deb - Raise the maximum IRQL that this routine is callable to APC_LEVEL
svn path=/branches/aicom-network-fixes/; revision=35363
2008-08-16 00:28:33 +00:00
Cameron Gutman 6696dcbc45 - Fix a memory leak that occurs when AfdSetContext is called with a buffer that is too small
- Properly return STATUS_BUFFER_TOO_SMALL when the buffer passed is too small

svn path=/branches/aicom-network-fixes/; revision=35358
2008-08-15 18:26:52 +00:00
Cameron Gutman 3f603adf26 - Fix a typo resulting in any call to AfdGetSockOrPeerName with Local set to FALSE to return STATUS_NO_MEMORY
svn path=/branches/aicom-network-fixes/; revision=35356
2008-08-15 18:14:55 +00:00
Cameron Gutman 76f11722e8 - Fix a possible crash
- Fix 2 memory leaks

svn path=/branches/aicom-network-fixes/; revision=35343
2008-08-14 17:13:11 +00:00
Cameron Gutman 5cf6890ee7 - Always set Irp->IoStatus.Status
- Clear the cancel routine only when completing

svn path=/branches/aicom-network-fixes/; revision=35340
2008-08-14 15:14:32 +00:00
Cameron Gutman e5e4035c8d - Set Buf to NULL so we don't try to free it again later
svn path=/branches/aicom-network-fixes/; revision=35306
2008-08-13 14:53:22 +00:00
Cameron Gutman 4afbde3127 - Revert r35279 due to some odd problems with UnlockBuffers when completing
svn path=/branches/aicom-network-fixes/; revision=35298
2008-08-13 04:40:39 +00:00
Cameron Gutman e07f679c75 - Don't crash if we are already freed
- Some code frees the buffers right after an operation fails which is fine

svn path=/branches/aicom-network-fixes/; revision=35297
2008-08-13 02:55:05 +00:00
Cameron Gutman 90f6b947b8 - Move memory freeing to ListenComplete
svn path=/branches/aicom-network-fixes/; revision=35296
2008-08-13 00:19:34 +00:00
Cameron Gutman 70fd5e3314 - Check for FCB->TdiDeviceName.Buffer before attempting to access it
- Fix 2 more memory leaks

svn path=/branches/aicom-network-fixes/; revision=35292
2008-08-12 20:03:53 +00:00
Cameron Gutman 8f5e892fbf - Free the MDL on failure
- Use _SEH_YIELD

svn path=/branches/aicom-network-fixes/; revision=35291
2008-08-12 18:34:07 +00:00
Cameron Gutman b50e9e3146 - Make sure both FCB->Recv.Window and FCB->Send.Window were created before returning STATUS_SUCCESS
- Make sure MakeSocketIntoConnection() completed successfully
 - Make sure WarmSocketForConnection() completed successfully
 - Don't continue if TdiBuildNullConnectionInfoInPlace() fails
 - SEHify TdiBuildConnectionInfoInPlace()
 - Make sure we have a non-NULL TargetAddress before calling TdiSendDatagram()

svn path=/branches/aicom-network-fixes/; revision=35290
2008-08-12 18:18:03 +00:00
Cameron Gutman 5d9c71ed13 - Fix another memory leak
svn path=/branches/aicom-network-fixes/; revision=35289
2008-08-12 15:27:15 +00:00
Cameron Gutman f0d01cf5aa - Don't forget to call UnlockBuffers()
- Use Irp->IoStatus.Information instead of RecvReq->BufferArray[0].len

svn path=/branches/aicom-network-fixes/; revision=35283
2008-08-12 03:20:52 +00:00
Cameron Gutman bfa1b80f5f - Don't continue if locking failed
svn path=/branches/aicom-network-fixes/; revision=35282
2008-08-11 22:44:24 +00:00
Cameron Gutman ce24947336 - Only call LockBuffers() if we must
svn path=/branches/aicom-network-fixes/; revision=35279
2008-08-11 15:32:45 +00:00
Cameron Gutman 4873208286 - Set the MDL we just freed to NULL so we don't try to free it again later
svn path=/branches/aicom-network-fixes/; revision=35274
2008-08-11 14:38:17 +00:00
Cameron Gutman d6823d52cf - Move check for NULL FCB before trying to access it
- Should fix a random crash I got when testing my web server

svn path=/branches/aicom-network-fixes/; revision=35260
2008-08-10 11:23:05 +00:00
Cameron Gutman 55ca1bda96 - Uncomment TdiQueryAddress and get it to compile
svn path=/branches/aicom-network-fixes/; revision=35251
2008-08-09 23:44:44 +00:00
Cameron Gutman 98c4b74c0d - Uncomment TdiQueryInformationEx and make it compile
svn path=/branches/aicom-network-fixes/; revision=35250
2008-08-09 23:25:46 +00:00
Cameron Gutman 1364b76b4d - Fix another memory leak
svn path=/branches/aicom-network-fixes/; revision=35246
2008-08-09 19:03:37 +00:00
Cameron Gutman 9ff6170e6f - Remove ASSERTs and return STATUS_INVALID_PARAMETER
- Should fix Christoph's problem with ROS crashing when closing emule

svn path=/branches/aicom-network-fixes/; revision=35189
2008-08-08 17:50:00 +00:00
Cameron Gutman 6c645ac736 - Add some ASSERTs
svn path=/branches/aicom-network-fixes/; revision=35188
2008-08-08 16:56:51 +00:00
Cameron Gutman 9e8d40a05b - Remove duplicate code
svn path=/branches/aicom-network-fixes/; revision=35186
2008-08-08 16:17:06 +00:00
Cameron Gutman 5345dbe2ae - Don't check Status so we don't quit looping after the first unsuccessful IRP
svn path=/branches/aicom-network-fixes/; revision=35152
2008-08-06 22:19:53 +00:00
Cameron Gutman 1fccbafaed - Close the handle on failure
svn path=/branches/aicom-network-fixes/; revision=35116
2008-08-05 01:46:59 +00:00
Cameron Gutman ac4f9f984d - Fix more leaks
svn path=/branches/aicom-network-fixes/; revision=35106
2008-08-04 16:20:08 +00:00
Cameron Gutman e3383af168 - Revert the rest of r35080
- The memory is freed in AfdAccept

svn path=/branches/aicom-network-fixes/; revision=35102
2008-08-04 15:19:23 +00:00
Cameron Gutman 23c7498a26 - Revert part of r35080
svn path=/branches/aicom-network-fixes/; revision=35101
2008-08-04 15:16:44 +00:00
Cameron Gutman 23cb7f30fa - Fix 2 more memory leaks
svn path=/branches/aicom-network-fixes/; revision=35080
2008-08-03 18:49:30 +00:00
Cameron Gutman 376173f679 - Fail if we can't allocate memory
- Fix a memory leak
 - Also resize the buffer on STATUS_BUFFER_OVERFLOW

svn path=/branches/aicom-network-fixes/; revision=35076
2008-08-03 18:02:10 +00:00
Cameron Gutman fa8410c89c - Don't continue if OpenRegistryKey fails
svn path=/branches/aicom-network-fixes/; revision=35073
2008-08-03 17:27:16 +00:00
Cameron Gutman 93abe83cd2 - Check to see if the ZwEnumerateKey call succeeded with the larger buffer and continue if possible
svn path=/branches/aicom-network-fixes/; revision=35055
2008-08-03 05:10:53 +00:00
Cameron Gutman 31bbc55cec - Add some more debug prints for memory allocation/freeing
svn path=/branches/aicom-network-fixes/; revision=35054
2008-08-03 03:05:39 +00:00
Cameron Gutman 312bb6657e - We must assign values to Irp->IoStatus.Status and Irp->IoStatus.Information because the function that called us might not call UnlockAndMaybeComplete to assign those values
svn path=/branches/aicom-network-fixes/; revision=35053
2008-08-03 01:38:05 +00:00
Cameron Gutman f470e856b1 - Set Irp->IoStatus.Information to 0
- Set Irp->IoStatus.Status before returning

svn path=/branches/aicom-network-fixes/; revision=35046
2008-08-02 20:53:32 +00:00
Cameron Gutman ca91433bbc - We must complete the IRP if we fail because the function we were called from expects the IRP to be completed after this call
- Return the correct status

svn path=/branches/aicom-network-fixes/; revision=35038
2008-08-02 14:52:19 +00:00
Cameron Gutman dfd8d6b0c0 - Fix a bug where Irp->IoStatus wasn't set if Status == STATUS_PENDING
svn path=/branches/aicom-network-fixes/; revision=35024
2008-08-02 03:51:17 +00:00
Cameron Gutman 80709d7858 - Make sure to set Irp->IoStatus.Status to the correct status
svn path=/branches/aicom-network-fixes/; revision=35023
2008-08-02 03:17:53 +00:00
Cameron Gutman 928b81e97f - These should no longer be needed now that TDI doesn't give back invalid IRPs
- I'll look into the canceling issue later

svn path=/branches/aicom-network-fixes/; revision=35014
2008-08-01 17:21:52 +00:00
Cameron Gutman 606652ca08 * Fix many memory leaks by unmapping MDL pages when UnlockAndMaybeComplete and LostSocket are called with Status != STATUS_PENDING
This change should probably be merged to trunk before 0.3.6

svn path=/branches/aicom-network-fixes/; revision=35001
2008-08-01 12:19:18 +00:00
Art Yerkes c501d8112c Create a branch for network fixes.
svn path=/branches/aicom-network-fixes/; revision=34994
2008-08-01 11:32:26 +00:00