mirror of
https://github.com/UglyToad/PdfPig.git
synced 2025-04-05 20:55:01 +08:00
check for offsets exceeding file length for xref parsing #293
This commit is contained in:
parent
30dbc4cd41
commit
becc772242
@ -23,6 +23,8 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
var builderOffsets = new Dictionary<IndirectReference, long>();
|
||||
|
||||
var bruteForceOffsets = BruteForceSearcher.GetObjectLocations(bytes);
|
||||
if (bruteForceOffsets.Count > 0)
|
||||
@ -77,10 +79,11 @@
|
||||
|
||||
foreach (var item in bruteForceOffsets)
|
||||
{
|
||||
//xrefOffset[item.Key] = item.Value;
|
||||
builderOffsets[item.Key] = item.Value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
actualOffsets = builderOffsets;
|
||||
}
|
||||
|
||||
return false;
|
||||
@ -131,6 +134,12 @@
|
||||
|
||||
try
|
||||
{
|
||||
if (offset >= bytes.Length)
|
||||
{
|
||||
bytes.Seek(originOffset);
|
||||
return false;
|
||||
}
|
||||
|
||||
bytes.Seek(offset);
|
||||
|
||||
if (ReadHelper.IsWhitespace(bytes.CurrentByte))
|
||||
|
@ -4,7 +4,6 @@
|
||||
using System.Collections.Generic;
|
||||
using Core;
|
||||
using Logging;
|
||||
using Parts;
|
||||
using Tokenization.Scanner;
|
||||
using Tokens;
|
||||
|
||||
@ -30,6 +29,11 @@
|
||||
return startXRefOffset;
|
||||
}
|
||||
|
||||
if (startXRefOffset >= inputBytes.Length)
|
||||
{
|
||||
return CalculateXRefFixedOffset(startXRefOffset, scanner, inputBytes);
|
||||
}
|
||||
|
||||
scanner.Seek(startXRefOffset);
|
||||
|
||||
scanner.MoveNext();
|
||||
|
Loading…
Reference in New Issue
Block a user