Skip to content

Commit 1c46f86

Browse files
committed
Fixed boolean buffer overwrite mishap
1 parent 8a921c2 commit 1c46f86

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

src/FirebirdSql.Data.FirebirdClient/Client/Managed/XdrReaderWriter.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ sealed class XdrReaderWriter : IXdrReader, IXdrWriter
3434
readonly Charset _charset;
3535

3636
byte[] _smallBuffer;
37+
byte[] _boolbuffer;
3738
const int StackallocThreshold = 1024;
3839

3940
public XdrReaderWriter(IDataProvider dataProvider, Charset charset)
@@ -42,6 +43,7 @@ public XdrReaderWriter(IDataProvider dataProvider, Charset charset)
4243
_charset = charset;
4344

4445
_smallBuffer = new byte[8];
46+
_boolbuffer = new byte[1];
4547
}
4648

4749
public XdrReaderWriter(IDataProvider dataProvider)
@@ -450,9 +452,8 @@ public bool ReadBoolean()
450452
}
451453
public async ValueTask<bool> ReadBooleanAsync(CancellationToken cancellationToken = default)
452454
{
453-
await ReadBytesAsync(_smallBuffer, 1, cancellationToken).ConfigureAwait(false);
454-
await ReadPadAsync((4 - 1) & 3, cancellationToken).ConfigureAwait(false);
455-
return TypeDecoder.DecodeBoolean(_smallBuffer);
455+
await ReadOpaqueAsync(_boolbuffer, 1, cancellationToken).ConfigureAwait(false);
456+
return TypeDecoder.DecodeBoolean(_boolbuffer);
456457
}
457458

458459
public FbZonedDateTime ReadZonedDateTime(bool isExtended)

0 commit comments

Comments
 (0)