| Index: fpdfsdk/src/fpdfview.cpp
|
| diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
|
| index 3f6bdd94b3324146873a1e3eb06751a7ce7264f5..fba5d65bcecfbdec3b9cec470f0b62dd4363e45f 100644
|
| --- a/fpdfsdk/src/fpdfview.cpp
|
| +++ b/fpdfsdk/src/fpdfview.cpp
|
| @@ -848,8 +848,10 @@ DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document, int index,
|
| pDestObj = nameTree.LookupValue(index, bsName);
|
| }
|
| if (!pDestObj) return NULL;
|
| - if (pDestObj->GetType() == PDFOBJ_DICTIONARY)
|
| + if (pDestObj->GetType() == PDFOBJ_DICTIONARY) {
|
| pDestObj = ((CPDF_Dictionary*)pDestObj)->GetArray(FX_BSTRC("D"));
|
| + if (!pDestObj) return NULL;
|
| + }
|
| if (pDestObj->GetType() != PDFOBJ_ARRAY) return NULL;
|
| CFX_WideString wsName = PDF_DecodeText(bsName);
|
| CFX_ByteString utf16Name = wsName.UTF16LE_Encode();
|
| @@ -858,6 +860,7 @@ DLLEXPORT FPDF_DEST STDCALL FPDF_GetNamedDest(FPDF_DOCUMENT document, int index,
|
| buflen = len;
|
| } else if (buflen >= len) {
|
| memcpy(buffer, utf16Name.c_str(), len);
|
| + buflen = len;
|
| } else {
|
| buflen = -1;
|
| }
|
|
|