Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-21296

TypeMatchExpression::matches uses uninitialized member field

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.2.0-rc2
    • Component/s: Querying
    • None
    • Fully Compatible
    • ALL
    • Hide

      valgrind --tool=memcheck --num-callers=35 --soname-synonyms=somalloc=NONE --leak-check=full --suppressions=etc/valgrind.suppressions build/debug/mongo/db/matcher/expression_parser_test

      Show
      valgrind --tool=memcheck --num-callers=35 --soname-synonyms=somalloc=NONE --leak-check=full --suppressions=etc/valgrind.suppressions build/debug/mongo/db/matcher/expression_parser_test
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      TypeMatchExpression::initAsMatchingAllNumbers does not set _type.

      ==32767== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
      ==32767== Command: build/debug/mongo/db/matcher/expression_parser_test
      ==32767==
      ==32767== Conditional jump or move depends on uninitialised value(s)
      ==32767==    at 0x8821BF: mongo::TypeMatchExpression::matches(mongo::MatchableDocument const*, mongo::MatchDetails*) const (expression_leaf.cpp:459)
      ==32767==    by 0x87B1FB: mongo::MatchExpression::matchesBSON(mongo::BSONObj const&, mongo::MatchDetails*) const (expression.cpp:55)
      ==32767==    by 0x8020EC: mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber::_doTest() (expression_parser_leaf_test.cpp:773)
      ==32767==    by 0x8BE98A: mongo::unittest::Test::run() (unittest.cpp:147)
      ==32767==    by 0x82679C: void mongo::unittest::Suite::runTestObject<mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber>() (unittest.h:405)
      ==32767==    by 0x7DFA58: std::_Function_handler<void (), void (*)()>::_M_invoke(std::_Any_data const&) (functional:1871)
      ==32767==    by 0x8C2269: std::function<void ()>::operator()() const (functional:2271)
      ==32767==    by 0x8C1B07: mongo::unittest::TestHolder::run() const (unittest.h:257)
      ==32767==    by 0x8BF8A1: mongo::unittest::Suite::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) (unittest.cpp:263)
      ==32767==    by 0x8C01E2: mongo::unittest::Suite::run(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int) (unittest.cpp:321)
      ==32767==    by 0x8C656B: main (unittest_main.cpp:40)
      

            Assignee:
            Unassigned Unassigned
            Reporter:
            mark.benvenuto@mongodb.com Mark Benvenuto
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: