Skip to content

Commit d4f3d50

Browse files
committed
Port PGP utility fix from Java
1 parent 83fe8ec commit d4f3d50

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

crypto/src/bcpg/BcpgOutputStream.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@ public void Finish()
376376
if (partialBuffer != null)
377377
{
378378
PartialFlush(true);
379+
Array.Clear(partialBuffer, 0, partialBuffer.Length);
379380
partialBuffer = null;
380381
}
381382
}

crypto/src/bcpg/LiteralDataPacket.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ internal LiteralDataPacket(
2323
fileName = new byte[len];
2424
for (int i = 0; i != len; ++i)
2525
{
26-
fileName[i] = (byte)bcpgIn.ReadByte();
26+
int ch = bcpgIn.ReadByte();
27+
if (ch < 0)
28+
throw new IOException("literal data truncated in header");
29+
30+
fileName[i] = (byte)ch;
2731
}
2832

2933
modDate = (((uint)bcpgIn.ReadByte() << 24)

crypto/src/openpgp/PgpUtilities.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -367,7 +367,7 @@ public static void WriteFileToLiteralData(
367367
byte[] buffer)
368368
{
369369
PgpLiteralDataGenerator lData = new PgpLiteralDataGenerator();
370-
Stream pOut = lData.Open(output, fileType, file.Name, file.LastWriteTime, buffer);
370+
Stream pOut = lData.Open(output, fileType, file.Name, file.LastWriteTime, Arrays.Clone(buffer));
371371
PipeFileContents(file, pOut, buffer.Length);
372372
}
373373

0 commit comments

Comments
 (0)