From 0ecad78c1d54a3d2eb9046ee39349db1619198d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E5=89=91=E6=B3=A2?= <940930034@qq.com> Date: Tue, 25 Aug 2020 09:00:22 +0800 Subject: [PATCH] Fixed an exception thrown when parsing external links. --- source/detail/serialization/xlsx_consumer.cpp | 5 ++++ tests/data/Issue503_external_link.xlsx | Bin 0 -> 19619 bytes tests/workbook/serialization_test_suite.cpp | 24 +++++++++++++----- 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100755 tests/data/Issue503_external_link.xlsx diff --git a/source/detail/serialization/xlsx_consumer.cpp b/source/detail/serialization/xlsx_consumer.cpp index 62d9c418..0fb7092d 100644 --- a/source/detail/serialization/xlsx_consumer.cpp +++ b/source/detail/serialization/xlsx_consumer.cpp @@ -243,6 +243,11 @@ xlnt::detail::Cell parse_cell(xlnt::row_t row_arg, xml::parser *parser) throw xlnt::exception("unexcpected XML parsing event"); } } + // Prevents unhandled exceptions from being triggered. + for (auto &attr : parser->attribute_map()) + { + (void)attr; + } } return c; } diff --git a/tests/data/Issue503_external_link.xlsx b/tests/data/Issue503_external_link.xlsx new file mode 100755 index 0000000000000000000000000000000000000000..d7aea8228ab49031643c7ceab29d0a4b0d9a5b17 GIT binary patch literal 19619 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 literal 0 HcmV?d00001 diff --git a/tests/workbook/serialization_test_suite.cpp b/tests/workbook/serialization_test_suite.cpp index 289e08ca..ddad3713 100644 --- a/tests/workbook/serialization_test_suite.cpp +++ b/tests/workbook/serialization_test_suite.cpp @@ -23,28 +23,28 @@ #include +#include #include #include -#include -#include -#include +#include #include +#include #include #include -#include +#include #include #include #include #include #include +#include #include #include #include -#include #include +#include #include #include -#include #include #include #include @@ -93,6 +93,7 @@ public: register_test(test_load_save_german_locale); register_test(test_Issue445_inline_str_load); register_test(test_Issue445_inline_str_streaming_read); + register_test(test_Issue503_external_link_load); } bool workbook_matches_file(xlnt::workbook &wb, const xlnt::path &file) @@ -714,7 +715,7 @@ public: void test_load_save_german_locale() { - /* std::locale current(std::locale::global(std::locale("de-DE"))); + /* std::locale current(std::locale::global(std::locale("de-DE"))); test_round_trip_rw_custom_heights_widths(); std::locale::global(current);*/ } @@ -736,5 +737,14 @@ public: auto cell = wbr.read_cell(); xlnt_assert_equals(cell.value(), std::string("a")); } + + void test_Issue503_external_link_load() + { + xlnt::workbook wb; + wb.load(path_helper::test_file("Issue503_external_link.xlsx")); + auto ws = wb.active_sheet(); + auto cell = ws.cell("A1"); + xlnt_assert_equals(cell.value(), std::string("WDG_IC_00000003.aut")); + } }; static serialization_test_suite x;