New Defects reported by Coverity Scan for ceph

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Please find the latest report on new defect(s) introduced to ceph found with Coverity Scan.

21 new defect(s) introduced to ceph found with Coverity Scan.
2 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 20 of 21 defect(s)


** CID 1160831:  Program hangs  (ORDER_REVERSAL)


________________________________________________________________________________________________________
*** CID 1160831:  Program hangs  (ORDER_REVERSAL)
/home/brad/working/src/ceph/src/common/ceph_context.cc: 709 in CephContext::reopen_logs()()
703     }
704     
705     void CephContext::reopen_logs()
706     {
707       ceph_spin_lock(&_service_thread_lock);
708       if (_service_thread)
>>>     CID 1160831:  Program hangs  (ORDER_REVERSAL)
>>>     Calling "reopen_logs" acquires lock "Mutex._m" while holding lock "ceph_spinlock_t.lock" (count: 3 / 23).
709         _service_thread->reopen_logs();
710       ceph_spin_unlock(&_service_thread_lock);
711     }
712     
713     void CephContext::join_service_thread()
714     {

** CID 1403541:  Security best practices violations  (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 1030 in ObjectMapTest_RandomTestNoDeletesXattrs_Test::TestBody()()


________________________________________________________________________________________________________
*** CID 1403541:  Security best practices violations  (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 1030 in ObjectMapTest_RandomTestNoDeletesXattrs_Test::TestBody()()
1024       }
1025     }
1026     
1027     TEST_F(ObjectMapTest, RandomTestNoDeletesXattrs) {
1028       tester.def_init();
1029       for (unsigned i = 0; i < 5000; ++i) {
>>>     CID 1403541:  Security best practices violations  (DC.WEAK_CRYPTO)
>>>     "rand" should not be used for security related applications, as linear congruential algorithms are too easy to break.
1030         unsigned val = rand();
1031         val <<= 8;
1032         val %= 100;
1033         if (!(i%100))
1034           std::cout << "on op " << i
1035     		<< " val is " << val << std::endl;

** CID 1403542:  Security best practices violations  (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/os/ObjectStore.cc: 82 in ObjectStore::create(CephContext *, const 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 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> &, unsigned int)()


________________________________________________________________________________________________________
*** CID 1403542:  Security best practices violations  (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/os/ObjectStore.cc: 82 in ObjectStore::create(CephContext *, const 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 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> &, unsigned int)()
76       if (type == "bluestore" &&
77           cct->check_experimental_feature_enabled("bluestore")) {
78         return new BlueStore(cct, data);
79       }
80       if (type == "random" &&
81           cct->check_experimental_feature_enabled("bluestore")) {
>>>     CID 1403542:  Security best practices violations  (DC.WEAK_CRYPTO)
>>>     "rand" should not be used for security related applications, as linear congruential algorithms are too easy to break.
82         if (rand() % 2) {
83           return new FileStore(cct, data, journal, flags);
84         } else {
85           return new BlueStore(cct, data);
86         }
87       }

** CID 1403543:  Security best practices violations  (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 297 in ObjectMapTester::auto_set_keys(std::basic_ostream<char, std::char_traits<char>>&)()


________________________________________________________________________________________________________
*** CID 1403543:  Security best practices violations  (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 297 in ObjectMapTester::auto_set_keys(std::basic_ostream<char, std::char_traits<char>>&)()
291       }
292     
293       void auto_set_keys(ostream &out) {
294         set<string>::iterator object = rand_choose(object_name_space);
295     
296         map<string, string> to_set;
>>>     CID 1403543:  Security best practices violations  (DC.WEAK_CRYPTO)
>>>     "rand" should not be used for security related applications, as linear congruential algorithms are too easy to break.
297         unsigned amount = (rand() % 10) + 1;
298         for (unsigned i = 0; i < amount; ++i) {
299           set<string>::iterator key = rand_choose(key_space);
300           string value = val_from_key(*object, *key);
301           out << "auto_set_key " << *object << ": " << *key << " -> "
302     	  << value << std::endl;

** CID 1403544:    (INVALIDATE_ITERATOR)
/home/brad/working/src/ceph/src/crush/CrushWrapper.cc: 2040 in CrushWrapper::_choose_type_stack(CephContext *, const std::vector<std::pair<int, int>, std::allocator<std::pair<int, int>>> &, const std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>&, std::vector<int, std::allocator<int>>&, __gnu_cxx::__normal_iterator<const int *, std::vector<int, std::allocator<int>>> &, std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>*) const()
/home/brad/working/src/ceph/src/crush/CrushWrapper.cc: 2040 in CrushWrapper::_choose_type_stack(CephContext *, const std::vector<std::pair<int, int>, std::allocator<std::pair<int, int>>> &, const std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>&, std::vector<int, std::allocator<int>>&, __gnu_cxx::__normal_iterator<const int *, std::vector<int, std::allocator<int>>> &, std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>*) const()


________________________________________________________________________________________________________
*** CID 1403544:    (INVALIDATE_ITERATOR)
/home/brad/working/src/ceph/src/crush/CrushWrapper.cc: 2040 in CrushWrapper::_choose_type_stack(CephContext *, const std::vector<std::pair<int, int>, std::allocator<std::pair<int, int>>> &, const std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>&, std::vector<int, std::allocator<int>>&, __gnu_cxx::__normal_iterator<const int *, std::vector<int, std::allocator<int>>> &, std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>*) const()
2034         for (auto from : w) {
2035           ldout(cct, 10) << " from " << from << dendl;
2036     
2037           for (int pos = 0; pos < fanout; ++pos) {
2038     	if (type > 0) {
2039     	  // non-leaf
>>>     CID 1403544:    (INVALIDATE_ITERATOR)
>>>     Dereferencing iterator "tmpi" though it is already past the end of its container.
2040     	  int item = *tmpi;
2041     	  do {
2042     	    int r = get_immediate_parent_id(item, &item);
2043     	    if (r < 0) {
2044     	      ldout(cct, 10) << __func__ << " parent of " << item << " got "
2045     			     << cpp_strerror(r) << dendl;
/home/brad/working/src/ceph/src/crush/CrushWrapper.cc: 2040 in CrushWrapper::_choose_type_stack(CephContext *, const std::vector<std::pair<int, int>, std::allocator<std::pair<int, int>>> &, const std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>&, std::vector<int, std::allocator<int>>&, __gnu_cxx::__normal_iterator<const int *, std::vector<int, std::allocator<int>>> &, std::set<int, std::less<int>, std::allocator<int>> &, std::vector<int, std::allocator<int>>*) const()
2034         for (auto from : w) {
2035           ldout(cct, 10) << " from " << from << dendl;
2036     
2037           for (int pos = 0; pos < fanout; ++pos) {
2038     	if (type > 0) {
2039     	  // non-leaf
>>>     CID 1403544:    (INVALIDATE_ITERATOR)
>>>     Dereferencing iterator "tmpi" though it is already past the end of its container.
2040     	  int item = *tmpi;
2041     	  do {
2042     	    int r = get_immediate_parent_id(item, &item);
2043     	    if (r < 0) {
2044     	      ldout(cct, 10) << __func__ << " parent of " << item << " got "
2045     			     << cpp_strerror(r) << dendl;

** CID 1403545:  Program hangs  (LOCK)
/home/brad/working/src/ceph/src/librados/AioCompletionImpl.h: 220 in librados::C_AioCompleteAndSafe::finish(int)()


________________________________________________________________________________________________________
*** CID 1403545:  Program hangs  (LOCK)
/home/brad/working/src/ceph/src/librados/AioCompletionImpl.h: 220 in librados::C_AioCompleteAndSafe::finish(int)()
214     
215         c->lock.Lock();
216         c->callback_complete = NULL;
217         c->callback_safe = NULL;
218         c->cond.Signal();
219         c->put_unlock();
>>>     CID 1403545:  Program hangs  (LOCK)
>>>     Returning without unlocking "this->c->lock._m".
220       }
221     };
222     
223     }
224     

** CID 1403546:  Program hangs  (LOCK)
/home/brad/working/src/ceph/src/test/librados_test_stub/TestRadosClient.cc: 54 in librados::finish_aio_completion(librados::AioCompletionImpl *, int)()


________________________________________________________________________________________________________
*** CID 1403546:  Program hangs  (LOCK)
/home/brad/working/src/ceph/src/test/librados_test_stub/TestRadosClient.cc: 54 in librados::finish_aio_completion(librados::AioCompletionImpl *, int)()
48     
49       c->lock.Lock();
50       c->callback_complete = NULL;
51       c->callback_safe = NULL;
52       c->cond.Signal();
53       c->put_unlock();
>>>     CID 1403546:  Program hangs  (LOCK)
>>>     Returning without unlocking "c->lock._m".
54     }
55     
56     class AioFunctionContext : public Context {
57     public:
58       AioFunctionContext(const TestRadosClient::AioFunction &callback,
59                          Finisher *finisher, AioCompletionImpl *c)

** CID 1403547:  Program hangs  (ORDER_REVERSAL)


________________________________________________________________________________________________________
*** CID 1403547:  Program hangs  (ORDER_REVERSAL)
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 653 in AsyncMessenger::mark_down(const entity_addr_t &)()
647     void AsyncMessenger::mark_down(const entity_addr_t& addr)
648     {
649       lock.Lock();
650       AsyncConnectionRef p = _lookup_conn(addr);
651       if (p) {
652         ldout(cct, 1) << __func__ << " " << addr << " -- " << p << dendl;
>>>     CID 1403547:  Program hangs  (ORDER_REVERSAL)
>>>     Calling "stop" acquires lock "AsyncConnection.lock" while holding lock "Mutex._m" (count: 2 / 5).
653         p->stop(true);
654       } else {
655         ldout(cct, 1) << __func__ << " " << addr << " -- connection dne" << dendl;
656       }
657       lock.Unlock();
658     }

** CID 1403548:  Program hangs  (ORDER_REVERSAL)


________________________________________________________________________________________________________
*** CID 1403548:  Program hangs  (ORDER_REVERSAL)
/home/brad/working/src/ceph/src/common/ceph_context.cc: 769 in CephContext::disable_perf_counter()()
763     
764     void CephContext::disable_perf_counter()
765     {
766       _perf_counters_collection->remove(_cct_perf);
767     
768       ceph_spin_lock(&_cct_perf_lock);
>>>     CID 1403548:  Program hangs  (ORDER_REVERSAL)
>>>     Calling "~PerfCounters" acquires lock "Mutex._m" while holding lock "ceph_spinlock_t.lock" (count: 3 / 23).
769       delete _cct_perf;
770       _cct_perf = NULL;
771       ceph_spin_unlock(&_cct_perf_lock);
772     }
773     
774     void CephContext::refresh_perf_values()

** CID 1403549:    (ORDER_REVERSAL)


________________________________________________________________________________________________________
*** CID 1403549:    (ORDER_REVERSAL)
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 622 in AsyncMessenger::shutdown_connections(bool)()
616       ldout(cct,1) << __func__ << " " << dendl;
617       lock.Lock();
618       for (set<AsyncConnectionRef>::iterator q = accepting_conns.begin();
619            q != accepting_conns.end(); ++q) {
620         AsyncConnectionRef p = *q;
621         ldout(cct, 5) << __func__ << " accepting_conn " << p.get() << dendl;
>>>     CID 1403549:    (ORDER_REVERSAL)
>>>     Calling "stop" acquires lock "AsyncConnection.lock" while holding lock "Mutex._m" (count: 2 / 5).
622         p->stop(queue_reset);
623       }
624       accepting_conns.clear();
625     
626       while (!conns.empty()) {
627         ceph::unordered_map<entity_addr_t, AsyncConnectionRef>::iterator it = conns.begin();
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 632 in AsyncMessenger::shutdown_connections(bool)()
626       while (!conns.empty()) {
627         ceph::unordered_map<entity_addr_t, AsyncConnectionRef>::iterator it = conns.begin();
628         AsyncConnectionRef p = it->second;
629         ldout(cct, 5) << __func__ << " mark down " << it->first << " " << p << dendl;
630         conns.erase(it);
631         p->get_perf_counter()->dec(l_msgr_active_connections);
>>>     CID 1403549:    (ORDER_REVERSAL)
>>>     Calling "stop" acquires lock "AsyncConnection.lock" while holding lock "Mutex._m" (count: 2 / 5).
632         p->stop(queue_reset);
633       }
634     
635       {
636         Mutex::Locker l(deleted_lock);
637         while (!deleted_conns.empty()) {

** CID 1403550:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 218 in ObjectMapTester::rename(ghobject_t, ghobject_t)()


________________________________________________________________________________________________________
*** CID 1403550:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 218 in ObjectMapTester::rename(ghobject_t, ghobject_t)()
212     
213       void rename(const string &objname, const string &target) {
214         rename(ghobject_t(hobject_t(sobject_t(objname, CEPH_NOSNAP))),
215     	  ghobject_t(hobject_t(sobject_t(target, CEPH_NOSNAP))));
216       }
217     
>>>     CID 1403550:  Performance inefficiencies  (PASS_BY_VALUE)
>>>     Passing parameter hoid of type "ghobject_t" (size 144 bytes) by value.
218       void rename(ghobject_t hoid,
219     	     ghobject_t hoid2) {
220         db->rename(hoid, hoid2);
221       }
222     
223       void clear(const string &objname) {

** CID 1403551:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 186 in ObjectMapTester::remove_keys(ghobject_t, const std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<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>>>> &)()


________________________________________________________________________________________________________
*** CID 1403551:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 186 in ObjectMapTester::remove_keys(ghobject_t, const std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<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>>>> &)()
180     		  string key) {
181         set<string> to_remove;
182         to_remove.insert(key);
183         db->rm_keys(hoid, to_remove);
184       }
185     
>>>     CID 1403551:  Performance inefficiencies  (PASS_BY_VALUE)
>>>     Passing parameter hoid of type "ghobject_t" (size 144 bytes) by value.
186       void remove_keys(ghobject_t hoid,
187                        const set<string> &to_remove) {
188         db->rm_keys(hoid, to_remove);
189       }
190     
191       void remove_xattr(const string &objname, const string &key) {

** CID 1403552:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 232 in ObjectMapTester::legacy_clone(ghobject_t, ghobject_t)()


________________________________________________________________________________________________________
*** CID 1403552:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 232 in ObjectMapTester::legacy_clone(ghobject_t, ghobject_t)()
226     
227       void legacy_clone(const string &objname, const string &target) {
228         legacy_clone(ghobject_t(hobject_t(sobject_t(objname, CEPH_NOSNAP))),
229     	  ghobject_t(hobject_t(sobject_t(target, CEPH_NOSNAP))));
230       }
231     
>>>     CID 1403552:  Performance inefficiencies  (PASS_BY_VALUE)
>>>     Passing parameter hoid of type "ghobject_t" (size 144 bytes) by value.
232       void legacy_clone(ghobject_t hoid,
233     	     ghobject_t hoid2) {
234         db->legacy_clone(hoid, hoid2);
235       }
236     
237       void clear(ghobject_t hoid) {

** CID 1403553:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 76 in ObjectMapTester::set_keys(ghobject_t, const std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> &)()


________________________________________________________________________________________________________
*** CID 1403553:  Performance inefficiencies  (PASS_BY_VALUE)
/home/brad/working/src/ceph/src/test/ObjectMap/test_object_map.cc: 76 in ObjectMapTester::set_keys(ghobject_t, const std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>> &)()
70         bufferlist bl;
71         bl.append(bp);
72         to_write.insert(make_pair(key, bl));
73         db->set_keys(hoid, to_write);
74       }
75     
>>>     CID 1403553:  Performance inefficiencies  (PASS_BY_VALUE)
>>>     Passing parameter hoid of type "ghobject_t" (size 144 bytes) by value.
76       void set_keys(ghobject_t hoid, const map<string, string> &to_set) {
77         map<string, bufferlist> to_write;
78         for (auto &&i: to_set) {
79           bufferptr bp(i.second.data(), i.second.size());
80           bufferlist bl;
81           bl.append(bp);

** CID 1403554:    (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1276 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1343 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1344 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1346 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1392 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1463 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1464 in GarbageCollector_BasicTest_Test::TestBody()()
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1466 in GarbageCollector_BasicTest_Test::TestBody()()


________________________________________________________________________________________________________
*** CID 1403554:    (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1276 in GarbageCollector_BasicTest_Test::TestBody()()
1270         b2->get_ref(coll.get(), 200, 10);
1271         em.extent_map.insert(*new BlueStore::Extent(300, 300, 100, b4));
1272         b4->get_ref(coll.get(), 300, 100);
1273         em.extent_map.insert(*new BlueStore::Extent(4096, 0, 10, b3));
1274         b3->get_ref(coll.get(), 0, 10);
1275     
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(300U, 300U, 10U, b1)" leaks it.
1276         old_extents.push_back(*new BlueStore::OldExtent(300, 300, 10, b1)); 
1277     
1278         saving = gc.estimate(300, 100, em, old_extents, 4096);
1279         ASSERT_EQ(saving, 1);
1280         auto& to_collect = gc.get_extents_to_collect();
1281         ASSERT_EQ(to_collect.size(), 1u);
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1343 in GarbageCollector_BasicTest_Test::TestBody()()
1337         em.extent_map.insert(
1338           *new BlueStore::Extent(0x30000, 0, 0xf000, b4)); // new extent
1339         b4->get_ref(coll.get(), 0, 0xf000);
1340         em.extent_map.insert(*new BlueStore::Extent(0x3f000, 0x3f000, 0x1000, b1));
1341         b1->get_ref(coll.get(), 0x3f000, 0x1000);
1342     
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(32768U, 32768U, 32768U, b1)" leaks it.
1343         old_extents.push_back(*new BlueStore::OldExtent(0x8000, 0x8000, 0x8000, b1)); 
1344         old_extents.push_back(
1345           *new BlueStore::OldExtent(0x10000, 0x10000, 0x20000, b1));
1346         old_extents.push_back(*new BlueStore::OldExtent(0x30000, 0x30000, 0xf000, b1)); 
1347     
1348         saving = gc.estimate(0x30000, 0xf000, em, old_extents, 0x10000);
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1344 in GarbageCollector_BasicTest_Test::TestBody()()
1338           *new BlueStore::Extent(0x30000, 0, 0xf000, b4)); // new extent
1339         b4->get_ref(coll.get(), 0, 0xf000);
1340         em.extent_map.insert(*new BlueStore::Extent(0x3f000, 0x3f000, 0x1000, b1));
1341         b1->get_ref(coll.get(), 0x3f000, 0x1000);
1342     
1343         old_extents.push_back(*new BlueStore::OldExtent(0x8000, 0x8000, 0x8000, b1)); 
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(65536U, 65536U, 131072U, b1)" leaks it.
1344         old_extents.push_back(
1345           *new BlueStore::OldExtent(0x10000, 0x10000, 0x20000, b1));
1346         old_extents.push_back(*new BlueStore::OldExtent(0x30000, 0x30000, 0xf000, b1)); 
1347     
1348         saving = gc.estimate(0x30000, 0xf000, em, old_extents, 0x10000);
1349         ASSERT_EQ(saving, 2);
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1346 in GarbageCollector_BasicTest_Test::TestBody()()
1340         em.extent_map.insert(*new BlueStore::Extent(0x3f000, 0x3f000, 0x1000, b1));
1341         b1->get_ref(coll.get(), 0x3f000, 0x1000);
1342     
1343         old_extents.push_back(*new BlueStore::OldExtent(0x8000, 0x8000, 0x8000, b1)); 
1344         old_extents.push_back(
1345           *new BlueStore::OldExtent(0x10000, 0x10000, 0x20000, b1));
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(196608U, 196608U, 61440U, b1)" leaks it.
1346         old_extents.push_back(*new BlueStore::OldExtent(0x30000, 0x30000, 0xf000, b1)); 
1347     
1348         saving = gc.estimate(0x30000, 0xf000, em, old_extents, 0x10000);
1349         ASSERT_EQ(saving, 2);
1350         auto& to_collect = gc.get_extents_to_collect();
1351         ASSERT_EQ(to_collect.size(), 2u);
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1392 in GarbageCollector_BasicTest_Test::TestBody()()
1386         em.extent_map.insert(*new BlueStore::Extent(0, 0, 0x3000, b1));
1387         b1->get_ref(coll.get(), 0, 0x3000);
1388         em.extent_map.insert(
1389           *new BlueStore::Extent(0x3000, 0, 0x4000, b2)); // new extent
1390         b2->get_ref(coll.get(), 0, 0x4000);
1391     
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(12288U, 12288U, 4096U, b1)" leaks it.
1392         old_extents.push_back(*new BlueStore::OldExtent(0x3000, 0x3000, 0x1000, b1)); 
1393     
1394         saving = gc.estimate(0x3000, 0x4000, em, old_extents, 0x1000);
1395         ASSERT_EQ(saving, 0);
1396         auto& to_collect = gc.get_extents_to_collect();
1397         ASSERT_EQ(to_collect.size(), 0u);
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1463 in GarbageCollector_BasicTest_Test::TestBody()()
1457         em.extent_map.insert(
1458           *new BlueStore::Extent(0x30000, 0, 0xf000, b4)); // new extent
1459         b4->get_ref(coll.get(), 0, 0xf000);
1460         em.extent_map.insert(*new BlueStore::Extent(0x3f000, 0x1f000, 0x1000, b1));
1461         b1->get_ref(coll.get(), 0x1f000, 0x1000);
1462     
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(32768U, 32768U, 32768U, b0)" leaks it.
1463         old_extents.push_back(*new BlueStore::OldExtent(0x8000, 0x8000, 0x8000, b0)); 
1464         old_extents.push_back(
1465           *new BlueStore::OldExtent(0x10000, 0x10000, 0x10000, b0)); 
1466         old_extents.push_back(
1467           *new BlueStore::OldExtent(0x20000, 0x00000, 0x1f000, b1)); 
1468     
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1464 in GarbageCollector_BasicTest_Test::TestBody()()
1458           *new BlueStore::Extent(0x30000, 0, 0xf000, b4)); // new extent
1459         b4->get_ref(coll.get(), 0, 0xf000);
1460         em.extent_map.insert(*new BlueStore::Extent(0x3f000, 0x1f000, 0x1000, b1));
1461         b1->get_ref(coll.get(), 0x1f000, 0x1000);
1462     
1463         old_extents.push_back(*new BlueStore::OldExtent(0x8000, 0x8000, 0x8000, b0)); 
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(65536U, 65536U, 65536U, b0)" leaks it.
1464         old_extents.push_back(
1465           *new BlueStore::OldExtent(0x10000, 0x10000, 0x10000, b0)); 
1466         old_extents.push_back(
1467           *new BlueStore::OldExtent(0x20000, 0x00000, 0x1f000, b1)); 
1468     
1469         saving = gc.estimate(0x30000, 0xf000, em, old_extents, 0x10000);
/home/brad/working/src/ceph/src/test/objectstore/test_bluestore_types.cc: 1466 in GarbageCollector_BasicTest_Test::TestBody()()
1460         em.extent_map.insert(*new BlueStore::Extent(0x3f000, 0x1f000, 0x1000, b1));
1461         b1->get_ref(coll.get(), 0x1f000, 0x1000);
1462     
1463         old_extents.push_back(*new BlueStore::OldExtent(0x8000, 0x8000, 0x8000, b0)); 
1464         old_extents.push_back(
1465           *new BlueStore::OldExtent(0x10000, 0x10000, 0x10000, b0)); 
>>>     CID 1403554:    (RESOURCE_LEAK)
>>>     Failing to save or free storage allocated by "new BlueStore::OldExtent(131072U, 0U, 126976U, b1)" leaks it.
1466         old_extents.push_back(
1467           *new BlueStore::OldExtent(0x20000, 0x00000, 0x1f000, b1)); 
1468     
1469         saving = gc.estimate(0x30000, 0xf000, em, old_extents, 0x10000);
1470         ASSERT_EQ(saving, 2);
1471         auto& to_collect = gc.get_extents_to_collect();

** CID 1403555:    (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2745 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2755 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2764 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2774 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()


________________________________________________________________________________________________________
*** CID 1403555:    (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2745 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
2739     	old_extents->push_back(*oe);
2740     	add(end,
2741     	    p->blob_offset + front + length,
2742     	    p->length - front - length,
2743     	    p->blob);
2744     	p->length = front;
>>>     CID 1403555:    (RESOURCE_LEAK)
>>>     Variable "oe" going out of scope leaks the storage it points to.
2745     	break;
2746           } else {
2747     	// deref tail
2748     	assert(p->logical_end() > offset); // else seek_lextent bug
2749     	uint64_t keep = offset - p->logical_offset;
2750     	OldExtent* oe = OldExtent::create(c, offset, p->blob_offset + keep,
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2755 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
2749     	uint64_t keep = offset - p->logical_offset;
2750     	OldExtent* oe = OldExtent::create(c, offset, p->blob_offset + keep,
2751     					  p->length - keep, p->blob);
2752     	old_extents->push_back(*oe);
2753     	p->length = keep;
2754     	++p;
>>>     CID 1403555:    (RESOURCE_LEAK)
>>>     Variable "oe" going out of scope leaks the storage it points to.
2755     	continue;
2756           }
2757         }
2758         if (p->logical_offset + p->length <= end) {
2759           // deref whole lextent
2760           OldExtent* oe = OldExtent::create(c, p->logical_offset, p->blob_offset,
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2764 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
2758         if (p->logical_offset + p->length <= end) {
2759           // deref whole lextent
2760           OldExtent* oe = OldExtent::create(c, p->logical_offset, p->blob_offset,
2761     				        p->length, p->blob);
2762           old_extents->push_back(*oe);
2763           rm(p++);
>>>     CID 1403555:    (RESOURCE_LEAK)
>>>     Variable "oe" going out of scope leaks the storage it points to.
2764           continue;
2765         }
2766         // deref head
2767         uint64_t keep = p->logical_end() - end;
2768         OldExtent* oe = OldExtent::create(c, p->logical_offset, p->blob_offset,
2769     				      p->length - keep, p->blob);
/home/brad/working/src/ceph/src/os/bluestore/BlueStore.cc: 2774 in BlueStore::ExtentMap::punch_hole(boost::intrusive_ptr<BlueStore::Collection> &, unsigned long, unsigned long, boost::intrusive::list<BlueStore::OldExtent, boost::intrusive::member_hook<BlueStore::OldExtent, boost::intrusive::list_member_hook<void, void, void>, (&BlueStore::OldExtent::old_extent_item)>, void, void, void> *)()
2768         OldExtent* oe = OldExtent::create(c, p->logical_offset, p->blob_offset,
2769     				      p->length - keep, p->blob);
2770         old_extents->push_back(*oe);
2771     
2772         add(end, p->blob_offset + p->length - keep, keep, p->blob);
2773         rm(p);
>>>     CID 1403555:    (RESOURCE_LEAK)
>>>     Variable "oe" going out of scope leaks the storage it points to.
2774         break;
2775       }
2776     }
2777     
2778     BlueStore::Extent *BlueStore::ExtentMap::set_lextent(
2779       CollectionRef &c,

** CID 1403556:  Resource leaks  (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/common/test_mutex.cc: 66 in Mutex_DeleteLocked_Test::TestBody()()


________________________________________________________________________________________________________
*** CID 1403556:  Resource leaks  (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/common/test_mutex.cc: 66 in Mutex_DeleteLocked_Test::TestBody()()
60     }
61     
62     TEST(Mutex, DeleteLocked) {
63       Mutex* m = new Mutex("Recursive3",false);
64       m->Lock();
65       EXPECT_DEATH(delete m,".*");
>>>     CID 1403556:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "m" going out of scope leaks the storage it points to.

** CID 1403557:  Resource leaks  (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/common/test_mutex.cc: 38 in Mutex_NormalAsserts_Test::TestBody()()


________________________________________________________________________________________________________
*** CID 1403557:  Resource leaks  (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/common/test_mutex.cc: 38 in Mutex_NormalAsserts_Test::TestBody()()
32     }
33     
34     TEST(Mutex, NormalAsserts) {
35       Mutex* m = new Mutex("Normal",false);
36       m->Lock();
37       EXPECT_THROW(m->Lock(), int);
>>>     CID 1403557:  Resource leaks  (RESOURCE_LEAK)
>>>     Variable "m" going out of scope leaks the storage it points to.
38     }
39     
40     TEST(Mutex, RecursiveWithLockdep) {
41       do_init();
42       g_lockdep = 1;
43       Mutex* m = new Mutex("Recursive1",true);

** CID 1403558:  Null pointer dereferences  (REVERSE_INULL)
/home/brad/working/src/ceph/src/osd/OSDMap.cc: 1865 in OSDMap::pg_to_raw_osds(pg_t, std::vector<int, std::allocator<int>> *, int *) const()


________________________________________________________________________________________________________
*** CID 1403558:  Null pointer dereferences  (REVERSE_INULL)
/home/brad/working/src/ceph/src/osd/OSDMap.cc: 1865 in OSDMap::pg_to_raw_osds(pg_t, std::vector<int, std::allocator<int>> *, int *) const()
1859       *primary = -1;
1860       raw->clear();
1861       const pg_pool_t *pool = get_pg_pool(pg.pool());
1862       if (!pool)
1863         return 0;
1864       int r = _pg_to_raw_osds(*pool, pg, raw, NULL);
>>>     CID 1403558:  Null pointer dereferences  (REVERSE_INULL)
>>>     Null-checking "primary" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
1865       if (primary)
1866         *primary = _pick_primary(*raw);
1867       return r;
1868     }
1869     
1870     void OSDMap::pg_to_raw_up(pg_t pg, vector<int> *up, int *primary) const

** CID 1403559:  Error handling issues  (UNCAUGHT_EXCEPT)
/home/brad/working/src/ceph/src/tools/ceph_osdomap_tool.cc: 28 in main()


________________________________________________________________________________________________________
*** CID 1403559:  Error handling issues  (UNCAUGHT_EXCEPT)
/home/brad/working/src/ceph/src/tools/ceph_osdomap_tool.cc: 28 in main()
22     #include "os/filestore/DBObjectMap.h"
23     #include "kv/KeyValueDB.h"
24     
25     namespace po = boost::program_options;
26     using namespace std;
27     
>>>     CID 1403559:  Error handling issues  (UNCAUGHT_EXCEPT)
>>>     In function "main(int, char **)" an exception of type "ceph::buffer::bad_alloc" is thrown and never caught.
28     int main(int argc, char **argv) {
29       po::options_description desc("Allowed options");
30       string store_path, cmd, out_path, oid;
31       bool debug = false;
32       desc.add_options()
33         ("help", "produce help message")


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRaGCnxtQO9E3gxlB2GxVsWFENryh7bC5hIb-2FQBVM85YLQ-3D-3D_2sw0G7ICm9mxCh1lYW1t9y1lfDrIerWzLwB67LZ-2Bn8GYMtHP0iqDhJxrU2AKca4ybxq6StALc9b-2BGuPG3Yqi-2F9J4j3HDwRf2mwV2kze1N8-2FpItURbqegcqxi0Nphv3-2Fq314GLlAGn8fRnUOfhOtg0emKzA7b7PMg2Td2FqEZE2Cn2L4hfEGWlqk0ghg1o6yofSlbduOfL8lEuGtf8o0E-2Fo9YZYYSEjXLsCZHZLRK2us-3D

To manage Coverity Scan email notifications for "ceph-devel@xxxxxxxxxxxxxxx", click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbVDbis712qZDP-2FA8y06Nq4Bco8jcmzhh7FSyvoR0E3-2BDgRcBCQ6OuthHBtaTCGNq9zoLsiw8NWrIF2zsdhfTt-2FbHjZ2ToL3Et9v1-2BrDLungAOjHpQtOY-2BsyLiTVCQEUCU-3D_2sw0G7ICm9mxCh1lYW1t9y1lfDrIerWzLwB67LZ-2Bn8GYMtHP0iqDhJxrU2AKca4ybxq6StALc9b-2BGuPG3Yqi-2Fz1eOK5Q-2Btu6cS8EvVZdb5DrJUxs807FnfVQn5feiqNRW1qTsWr1MdcgOXPNj7wl2F6D3hDB2RwV-2BFZy-2BcvhEJ2lYyy9w6um6G8VqFpWyFEjW3kVyVOaqFVHH9r6mYM2a1BUEec-2BZoBPDjN0yFEcwFE-3D

--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux