diff options
Diffstat (limited to 'fpdfsdk/src/fpdfview.cpp')
-rw-r--r-- | fpdfsdk/src/fpdfview.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp index 3f6bdd94b3..fba5d65bce 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; } |