mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 05:47:34 +00:00
LibPDF: Tolerate an indirect object as dict for CIE-based color spaces
Namely, for CalGrayColorSpace, CalRGBColorSpace, LabColorSpace. Fixes a crash rendering any page of Adobe's 5014.CIDFont_Spec.pdf (which uses CalRGBColorSpace with an indirect dict: The dict is object `92 0`, and many color spaces are inline objects referring to it).
This commit is contained in:
parent
f7874d03fc
commit
bbde3cbc90
1 changed files with 3 additions and 3 deletions
|
@ -314,7 +314,7 @@ PDFErrorOr<NonnullRefPtr<CalGrayColorSpace>> CalGrayColorSpace::create(Document*
|
|||
if (parameters.size() != 1)
|
||||
return Error { Error::Type::MalformedPDF, "Gray color space expects one parameter" };
|
||||
|
||||
auto param = parameters[0];
|
||||
auto param = TRY(document->resolve(parameters[0]));
|
||||
if (!param.has<NonnullRefPtr<Object>>() || !param.get<NonnullRefPtr<Object>>()->is<DictObject>())
|
||||
return Error { Error::Type::MalformedPDF, "Gray color space expects a dict parameter" };
|
||||
|
||||
|
@ -384,7 +384,7 @@ PDFErrorOr<NonnullRefPtr<CalRGBColorSpace>> CalRGBColorSpace::create(Document* d
|
|||
if (parameters.size() != 1)
|
||||
return Error { Error::Type::MalformedPDF, "RGB color space expects one parameter" };
|
||||
|
||||
auto param = parameters[0];
|
||||
auto param = TRY(document->resolve(parameters[0]));
|
||||
if (!param.has<NonnullRefPtr<Object>>() || !param.get<NonnullRefPtr<Object>>()->is<DictObject>())
|
||||
return Error { Error::Type::MalformedPDF, "RGB color space expects a dict parameter" };
|
||||
|
||||
|
@ -554,7 +554,7 @@ PDFErrorOr<NonnullRefPtr<LabColorSpace>> LabColorSpace::create(Document* documen
|
|||
if (parameters.size() != 1)
|
||||
return Error { Error::Type::MalformedPDF, "Lab color space expects one parameter" };
|
||||
|
||||
auto param = parameters[0];
|
||||
auto param = TRY(document->resolve(parameters[0]));
|
||||
if (!param.has<NonnullRefPtr<Object>>() || !param.get<NonnullRefPtr<Object>>()->is<DictObject>())
|
||||
return Error { Error::Type::MalformedPDF, "Lab color space expects a dict parameter" };
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue