Skip to content

[7.0.2 Cherry-pick] Add TDS token data length bounds checks (#4340)#4358

Merged
paulmedynski merged 2 commits into
release/7.0from
dev/automation/pr-4340-to-7.0.2
Jun 17, 2026
Merged

[7.0.2 Cherry-pick] Add TDS token data length bounds checks (#4340)#4358
paulmedynski merged 2 commits into
release/7.0from
dev/automation/pr-4340-to-7.0.2

Merge branch 'release/7.0' into dev/automation/pr-4340-to-7.0.2

8296c4a
Select commit
Loading
Failed to load commit list.
Azure Pipelines / PR-SqlClient-Project succeeded Jun 16, 2026 in 1h 24m 22s

Build #16712 had test failures

Details

Tests

  • Failed: 663 (0.26%)
  • Passed: 243,717 (97.20%)
  • Other: 6,361 (2.54%)
  • Total: 250,741
Code coverage

  • 94160 of 141777 line covered (66.41%)

Annotations

Check failure on line 0 in EXEC

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

EXEC#L0

EXEC(0,0): Error Message: 

Check failure on line 0 in EXEC

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

EXEC#L0

EXEC(0,0): Error Message: 

Check failure on line 0 in EXEC

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

EXEC#L0

EXEC(0,0): Error Message: 

Check failure on line 0 in EXEC

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

EXEC#L0

EXEC(0,0): Error Message: 

Check failure on line 1 in Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.NetworkError_WithUserProvidedPartner_RetryDisabled_ShouldConnectToFailoverPartner

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.NetworkError_WithUserProvidedPartner_RetryDisabled_ShouldConnectToFailoverPartner

Microsoft.Data.SqlClient.SqlException : Connection Timeout Expired.  The timeout period elapsed during the post-login phase.  The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections.  This failure occurred while attempting to connect to the Principle server.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=3; handshake=63; [Login] initialization=0; authentication=0; [Post-Login] complete=5405; 
---- System.ComponentModel.Win32Exception : The wait operation timed out
Raw output
   at Microsoft.Data.SqlClient.Connection.SqlConnectionInternal.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Connection/SqlConnectionInternal.cs:line 1305
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, SqlCommand command, Boolean callerHasConnectionLock, Boolean asyncClose) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParser.cs:line 1739
   at Microsoft.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 1251
   at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 4171
   at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 3580
   at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 3479
   at Microsoft.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 1473
   at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParserStateObject.cs:line 1789
   at Microsoft.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParser.cs:line 2475
   at Microsoft.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParser.cs:line 2362
   at Microsoft.Data.SqlClient.Connection.SqlConnectionInternal.CompleteLogin(Boolean enlistOK) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Connection/SqlConnectionInternal.cs:line 2264
   at Microsoft.Data.SqlClient.Connection.SqlConnectionInternal.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, TimeoutTimer timeout, Boolean withFailover, Boolean isFirstTransparentAttempt, Boolean disableTnir) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Connection/SqlConnectionInternal.cs:line 2228
   at Microsoft.Data.SqlClient.Connection.SqlConnectionInternal.LoginWithFailover(Boolean useFailoverHost, ServerInfo primaryServerInfo, String failoverHost, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Connection/SqlConnectionInternal.cs:line 3680
   at Microsoft.Data.SqlClient.Connection.SqlConnectionInternal.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) in /_/src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/Connection/SqlConnectionInternal.cs:line 3877
   at Microsoft.Data.SqlClient.Connection.SqlConnectionInternal..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, DbConnectionPoolGroupProviderInfo providerInfo, Strin
... [The stack trace has been truncated as it exceeded the maximum allowed size. Please refer to the complete log available in the Test Run attachments for full details.]

Check failure on line 1 in Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_WithUserProvidedPartner_ShouldConnectToPrimary(errorCode: 40613)

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_WithUserProvidedPartner_ShouldConnectToPrimary(errorCode: 40613)

Assert.Equal() Failure: Values differ
Expected: 2
Actual:   3
Raw output
   at Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_WithUserProvidedPartner_ShouldConnectToPrimary(UInt32 errorCode) in /_/src/Microsoft.Data.SqlClient/tests/UnitTests/SimulatedServerTests/ConnectionFailoverTests.cs:line 474
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)

Check failure on line 1 in Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_IgnoreServerProvidedFailoverPartner_ShouldConnectToUserProvidedPartner

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_IgnoreServerProvidedFailoverPartner_ShouldConnectToUserProvidedPartner

Assert.Equal() Failure: Strings differ
                         ↓ (pos 14)
Expected: "localhost,50274"
Actual:   "localhost,50275"
                         ↑ (pos 14)
Raw output
   at Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_IgnoreServerProvidedFailoverPartner_ShouldConnectToUserProvidedPartner() in /_/src/Microsoft.Data.SqlClient/tests/UnitTests/SimulatedServerTests/ConnectionFailoverTests.cs:line 583
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)

Check failure on line 1 in Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_IgnoreServerProvidedFailoverPartner_ShouldConnectToUserProvidedPartner

See this annotation in the file changed.

@azure-pipelines azure-pipelines / PR-SqlClient-Project

Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_IgnoreServerProvidedFailoverPartner_ShouldConnectToUserProvidedPartner

Assert.Equal() Failure: Strings differ
                         ↓ (pos 14)
Expected: "localhost,62940"
Actual:   "localhost,62941"
                         ↑ (pos 14)
Raw output
   at Microsoft.Data.SqlClient.UnitTests.SimulatedServerTests.ConnectionFailoverTests.TransientFault_IgnoreServerProvidedFailoverPartner_ShouldConnectToUserProvidedPartner() in /_/src/Microsoft.Data.SqlClient/tests/UnitTests/SimulatedServerTests/ConnectionFailoverTests.cs:line 583
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodBaseInvoker.InvokeWithNoArgs(Object obj, BindingFlags invokeAttr)