From 1f80ec95916a8c2ecda83d2a64fc94bd2b00b532 Mon Sep 17 00:00:00 2001 From: Nagappan Alagappan Date: Tue, 26 Sep 2006 08:52:08 +0000 Subject: [PATCH] * Tds70.cs : Fixed bug in FormatParameter() which caused ArgumentOutOfRangeException when formatting 0-length varbinary values under 1.0 profile. svn path=/trunk/mcs/; revision=65905 --- mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog | 6 ++++++ mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog index befb62b2d86..1d6c6377a76 100644 --- a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog +++ b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/ChangeLog @@ -1,3 +1,9 @@ +2006-07-18 Dean Brettle + + * Tds70.cs : Fixed bug in FormatParameter() which caused + ArgumentOutOfRangeException when formatting 0-length varbinary values + under 1.0 profile. + 2006-05-03 Senganal T * Tds.cs : diff --git a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs index 65d6206b561..1d068e48781 100644 --- a/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs +++ b/mcs/class/Mono.Data.Tds/Mono.Data.Tds.Protocol/Tds70.cs @@ -477,7 +477,13 @@ namespace Mono.Data.Tds.Protocol { case "image": case "binary": case "varbinary": - value = String.Format ("0x{0}", BitConverter.ToString ((byte[]) parameter.Value).Replace ("-", "").ToLower ()); + byte[] byteArray = (byte[]) parameter.Value; + // In 1.0 profile, BitConverter.ToString() throws ArgumentOutOfRangeException when passed a 0-length + // array, so handle that as a special case. + if (byteArray.Length == 0) + value = "0x"; + else + value = String.Format ("0x{0}", BitConverter.ToString (byteArray).Replace ("-", "").ToLower ()); break; default: value = String.Format ("'{0}'", parameter.Value.ToString ().Replace ("'", "''")); -- 2.25.1