From 2d546cfa5886ef03c166e32ad81913fdd7069330 Mon Sep 17 00:00:00 2001 From: zhangxin11112342 Date: Wed, 10 Jul 2024 15:09:54 +0800 Subject: [PATCH] =?UTF-8?q?fixed=203e6ee78=20from=20https://gitee.com/zhan?= =?UTF-8?q?gxin11112342/chromium=5Fthird=5Fparty=5Fpdfium/pulls/13=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8DCVE-2024-5846?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangxin11112342 --- fpdfsdk/formfiller/cffl_combobox.cpp | 13 ++++++++----- fpdfsdk/formfiller/cffl_listbox.cpp | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/fpdfsdk/formfiller/cffl_combobox.cpp b/fpdfsdk/formfiller/cffl_combobox.cpp index 7364135..1164424 100644 --- a/fpdfsdk/formfiller/cffl_combobox.cpp +++ b/fpdfsdk/formfiller/cffl_combobox.cpp @@ -90,22 +90,25 @@ void CFFL_ComboBox::SaveData(const CPDFSDK_PageView* pPageView) { if (m_pWidget->GetFieldFlags() & pdfium::form_flags::kChoiceEdit) bSetValue = (nCurSel < 0) || (swText != m_pWidget->GetOptionLabel(nCurSel)); + ObservedPtr observed_widget(m_pWidget); if (bSetValue) { m_pWidget->SetValue(swText); } else { m_pWidget->GetSelectedIndex(0); m_pWidget->SetOptionSelection(nCurSel); } - ObservedPtr observed_widget(m_pWidget); + if (!observed_widget) { + return; + } ObservedPtr observed_this(this); m_pWidget->ResetFieldAppearance(); - if (!observed_widget) + if (!observed_widget) { return; - + } m_pWidget->UpdateField(); - if (!observed_widget || !observed_this) + if (!observed_widget || !observed_this) { return; - + } SetChangeMark(); } diff --git a/fpdfsdk/formfiller/cffl_listbox.cpp b/fpdfsdk/formfiller/cffl_listbox.cpp index 31134bb..ccd0eab 100644 --- a/fpdfsdk/formfiller/cffl_listbox.cpp +++ b/fpdfsdk/formfiller/cffl_listbox.cpp @@ -110,26 +110,26 @@ void CFFL_ListBox::SaveData(const CPDFSDK_PageView* pPageView) { } int32_t nNewTopIndex = pListBox->GetTopVisibleIndex(); ObservedPtr observed_box(pListBox); + ObservedPtr observed_widget(m_pWidget); m_pWidget->ClearSelection(); - if (!observed_box) { + if (!observed_box || !observed_widget) { return; } if (m_pWidget->GetFieldFlags() & pdfium::form_flags::kChoiceMultiSelect) { for (int32_t i = 0, sz = pListBox->GetCount(); i < sz; i++) { if (pListBox->IsItemSelected(i)) { m_pWidget->SetOptionSelection(i); - if (!observed_box) { + if (!observed_box || !observed_widget) { return; } } } } else { m_pWidget->SetOptionSelection(pListBox->GetCurSel()); - if (!observed_box) { + if (!observed_box || !observed_widget) { return; } } - ObservedPtr observed_widget(m_pWidget); ObservedPtr observed_this(this); m_pWidget->SetTopVisibleIndex(nNewTopIndex); if (!observed_widget) { -- Gitee