Commit graph

59 commits

Author SHA1 Message Date
Cameron Gutman
df19533df7 - Fix IRP cancellation issues
- Ping doesn't hang anymore

svn path=/branches/aicom-network-fixes/; revision=35485
2008-08-20 18:50:26 +00:00
Cameron Gutman
67fae61a27 - Revert 35477-35481
svn path=/branches/aicom-network-fixes/; revision=35484
2008-08-20 18:46:38 +00:00
Cameron Gutman
9b492699af - Fix handling of cancelled IRPs
svn path=/branches/aicom-network-fixes/; revision=35481
2008-08-20 17:29:01 +00:00
Cameron Gutman
6159e6d129 - Don't forget about ConnectIrp (This fix was lost in the merge)
- Don't destroy the same socket twice
 - Don't unlock the same socket twice
 - Don't destroy a socket with pending IRPs

svn path=/branches/aicom-network-fixes/; revision=35480
2008-08-20 14:56:12 +00:00
Cameron Gutman
3def13f731 - Fix build
svn path=/branches/aicom-network-fixes/; revision=35479
2008-08-20 14:48:42 +00:00
Cameron Gutman
a796846871 - The rest of the merge
- This will most likely need fixing later

svn path=/branches/aicom-network-fixes/; revision=35478
2008-08-20 14:43:33 +00:00
Cameron Gutman
8b269440fd - Reapply arty's datagram cancellation work
- Part 1 of 3

svn path=/branches/aicom-network-fixes/; revision=35477
2008-08-20 14:21:08 +00:00
Cameron Gutman
fcdbf0c9d5 - Move LockBuffers
- Remove a duplicate debug print

svn path=/branches/aicom-network-fixes/; revision=35469
2008-08-20 01:42:12 +00:00
Cameron Gutman
95efddbf54 - Use FCB->Connection.Object instead of FCB->AddressFile.Object
- Spotted by Arty

svn path=/branches/aicom-network-fixes/; revision=35468
2008-08-20 01:10:13 +00:00
Cameron Gutman
5c1039783c - Fix a bug that resulted in the status getting changed if TdiQueryInformation failed
svn path=/branches/aicom-network-fixes/; revision=35467
2008-08-19 23:50:41 +00:00
Cameron Gutman
0afe589112 - Use MmGetSystemAddressForMdlSafe instead of MmMapLockedPages
- Noticed by Alex

svn path=/branches/aicom-network-fixes/; revision=35466
2008-08-19 23:44:11 +00:00
Cameron Gutman
717ec21981 - Fix a memory leak
svn path=/branches/aicom-network-fixes/; revision=35463
2008-08-19 21:45:08 +00:00
Cameron Gutman
735fdd1782 - Make sure we have an mdl and a buffer
svn path=/branches/aicom-network-fixes/; revision=35457
2008-08-19 17:45:53 +00:00
Cameron Gutman
2a199d0cb2 - SEHify LockRequest
- Free everything and return if MmMapLockedPages fails

svn path=/branches/aicom-network-fixes/; revision=35454
2008-08-19 16:23:01 +00:00
Cameron Gutman
ea2d464b14 - MmMapLockedPages takes KPROCESSOR_MODE not LOCK_OPERATION as the second parameter
svn path=/branches/aicom-network-fixes/; revision=35453
2008-08-19 16:06:36 +00:00
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
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
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