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

Conditional jump or move depends on uninitialised value(s) in expression_parser_test

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.2.0-rc3
    • Affects Version/s: None
    • Component/s: Querying
    • Minor Change
    • ALL
    • Hide
      ==3479== Conditional jump or move depends on uninitialised value(s)
      ==3479==    at 0x5ACB7C: mongo::TypeMatchExpression::matches(mongo::MatchableDocument const*, mongo::MatchDetails*) const (expression_leaf.cpp:459)
      ==3479==    by 0x5A7B76: mongo::MatchExpression::matchesBSON(mongo::BSONObj const&, mongo::MatchDetails*) const (expression.cpp:55)
      ==3479==    by 0x52043F: mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber::_doTest() (expression_parser_leaf_test.cpp:776)
      ==3479==    by 0x5D492B: mongo::unittest::Test::run() (unittest.cpp:147)
      ==3479==    by 0x554E6B: void mongo::unittest::Suite::runTestObject<mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber>() (unittest.h:405)
      ==3479==    by 0x5D56B3: operator() (functional:2271)
      ==3479==    by 0x5D56B3: run (unittest.h:257)
      ==3479==    by 0x5D56B3: mongo::unittest::Suite::run(std::string const&, int) (unittest.cpp:263)
      ==3479==    by 0x5D6E07: mongo::unittest::Suite::run(std::vector<std::string, std::allocator<std::string> > const&, std::string const&, int) (unittest.cpp:321)
      ==3479==    by 0x5DA5EF: main (unittest_main.cpp:40)
      ==3479==  Uninitialised value was created by a heap allocation
      ==3479==    at 0x4C29326: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==3479==    by 0x5B39AB: make_unique<mongo::TypeMatchExpression> (make_unique_object.hpp:21)
      ==3479==    by 0x5B39AB: mongo::MatchExpressionParser::_parseType(char const*, mongo::BSONElement const&) (expression_parser.cpp:625)
      ==3479==    by 0x5B1AF4: mongo::MatchExpressionParser::_parseSubField(mongo::BSONObj const&, mongo::AndMatchExpression const*, char const*, mongo::BSONElement const&, int) (expression_parser.cpp:221)
      ==3479==    by 0x5B8A81: mongo::MatchExpressionParser::_parseSub(char const*, mongo::BSONObj const&, mongo::AndMatchExpression*, int) (expression_parser.cpp:443)
      ==3479==    by 0x5B70F5: mongo::MatchExpressionParser::_parse(mongo::BSONObj const&, int) (expression_parser.cpp:363)
      ==3479==    by 0x51FF02: parse (expression_parser.h:70)
      ==3479==    by 0x51FF02: mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber::_doTest() (expression_parser_leaf_test.cpp:770)
      ==3479==    by 0x5D492B: mongo::unittest::Test::run() (unittest.cpp:147)
      ==3479==    by 0x554E6B: void mongo::unittest::Suite::runTestObject<mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber>() (unittest.h:405)
      ==3479==    by 0x5D56B3: operator() (functional:2271)
      ==3479==    by 0x5D56B3: run (unittest.h:257)
      ==3479==    by 0x5D56B3: mongo::unittest::Suite::run(std::string const&, int) (unittest.cpp:263)
      ==3479==    by 0x5D6E07: mongo::unittest::Suite::run(std::vector<std::string, std::allocator<std::string> > const&, std::string const&, int) (unittest.cpp:321)
      ==3479==    by 0x5DA5EF: main (unittest_main.cpp:40)
      ==3479== 
      
      Show
      ==3479== Conditional jump or move depends on uninitialised value(s) ==3479== at 0x5ACB7C: mongo::TypeMatchExpression::matches(mongo::MatchableDocument const*, mongo::MatchDetails*) const (expression_leaf.cpp:459) ==3479== by 0x5A7B76: mongo::MatchExpression::matchesBSON(mongo::BSONObj const&, mongo::MatchDetails*) const (expression.cpp:55) ==3479== by 0x52043F: mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber::_doTest() (expression_parser_leaf_test.cpp:776) ==3479== by 0x5D492B: mongo::unittest::Test::run() (unittest.cpp:147) ==3479== by 0x554E6B: void mongo::unittest::Suite::runTestObject<mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber>() (unittest.h:405) ==3479== by 0x5D56B3: operator() (functional:2271) ==3479== by 0x5D56B3: run (unittest.h:257) ==3479== by 0x5D56B3: mongo::unittest::Suite::run(std::string const&, int) (unittest.cpp:263) ==3479== by 0x5D6E07: mongo::unittest::Suite::run(std::vector<std::string, std::allocator<std::string> > const&, std::string const&, int) (unittest.cpp:321) ==3479== by 0x5DA5EF: main (unittest_main.cpp:40) ==3479== Uninitialised value was created by a heap allocation ==3479== at 0x4C29326: operator new(unsigned long) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==3479== by 0x5B39AB: make_unique<mongo::TypeMatchExpression> (make_unique_object.hpp:21) ==3479== by 0x5B39AB: mongo::MatchExpressionParser::_parseType(char const*, mongo::BSONElement const&) (expression_parser.cpp:625) ==3479== by 0x5B1AF4: mongo::MatchExpressionParser::_parseSubField(mongo::BSONObj const&, mongo::AndMatchExpression const*, char const*, mongo::BSONElement const&, int) (expression_parser.cpp:221) ==3479== by 0x5B8A81: mongo::MatchExpressionParser::_parseSub(char const*, mongo::BSONObj const&, mongo::AndMatchExpression*, int) (expression_parser.cpp:443) ==3479== by 0x5B70F5: mongo::MatchExpressionParser::_parse(mongo::BSONObj const&, int) (expression_parser.cpp:363) ==3479== by 0x51FF02: parse (expression_parser.h:70) ==3479== by 0x51FF02: mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber::_doTest() (expression_parser_leaf_test.cpp:770) ==3479== by 0x5D492B: mongo::unittest::Test::run() (unittest.cpp:147) ==3479== by 0x554E6B: void mongo::unittest::Suite::runTestObject<mongo::UnitTest__MatchExpressionParserLeafTest__TypeStringnameNumber>() (unittest.h:405) ==3479== by 0x5D56B3: operator() (functional:2271) ==3479== by 0x5D56B3: run (unittest.h:257) ==3479== by 0x5D56B3: mongo::unittest::Suite::run(std::string const&, int) (unittest.cpp:263) ==3479== by 0x5D6E07: mongo::unittest::Suite::run(std::vector<std::string, std::allocator<std::string> > const&, std::string const&, int) (unittest.cpp:321) ==3479== by 0x5DA5EF: main (unittest_main.cpp:40) ==3479==
    • QuInt C (11/23/15)
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      Need to initialize TypeMatchExpression::_type, apparently.

            Assignee:
            james.wahlin@mongodb.com James Wahlin
            Reporter:
            milkie@mongodb.com Eric Milkie
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: