From 1ec03ce07ca90cd582389c8e2e8243efc04df19a Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Fri, 10 Jun 2022 00:45:08 +0300 Subject: [PATCH] message-file: filter out non-file flags Only take flags from file names that are actually file-flags, not random other things --- lib/message/mu-message-file.cc | 8 +++++--- lib/tests/test-mu-msg.cc | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/message/mu-message-file.cc b/lib/message/mu-message-file.cc index 41861608..6067f622 100644 --- a/lib/message/mu-message-file.cc +++ b/lib/message/mu-message-file.cc @@ -105,14 +105,16 @@ Mu::flags_from_path(const std::string& path) /* it's cur/ message, so parse the file name */ const auto parts{message_file_parts(dirfile->file)}; auto flags{flags_from_absolute_expr(parts.flags_suffix, - true/*ignore invalid*/)}; + true/*ignore invalid*/)}; if (!flags) { /* LCOV_EXCL_START*/ return Err(Error{Error::Code::InvalidArgument, "invalid flags ('%s')", parts.flags_suffix.c_str()}); /* LCOV_EXCL_STOP*/ - } else - return Ok(std::move(flags.value())); + } + + /* of course, only _file_ flags are allowed */ + return Ok(flags_filter(flags.value(), MessageFlagCategory::Mailfile)); } diff --git a/lib/tests/test-mu-msg.cc b/lib/tests/test-mu-msg.cc index ae7a665c..cd3ec40e 100644 --- a/lib/tests/test-mu-msg.cc +++ b/lib/tests/test-mu-msg.cc @@ -169,7 +169,7 @@ test_mu_msg_flags(void) (Flags::Flagged | Flags::Seen | Flags::HasAttachment)}, {MU_TESTMAILDIR4 "/special!2,Sabc", - (Flags::Seen|Flags::HasAttachment)} + (Flags::Seen)} }}; for (auto&& test: tests) {