From: scan-admin@coverity.com
To: ceph-devel@vger.kernel.org
Subject: New Defects reported by Coverity Scan for ceph
Date: Fri, 27 Jan 2017 05:22:53 -0800 [thread overview]
Message-ID: <588b49ad335ab_43efc3f3343031c@ss1435.mail> (raw)
Hi,
Please find the latest report on new defect(s) introduced to ceph found with Coverity Scan.
24 new defect(s) introduced to ceph found with Coverity Scan.
13 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 24 defect(s)
** CID 1291023: (TAINTED_SCALAR)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1487 in sort_typeBstar()
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1602 in sort_typeBstar()
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1603 in sort_typeBstar()
________________________________________________________________________________________________________
*** CID 1291023: (TAINTED_SCALAR)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1487 in sort_typeBstar()
1481 */
1482
1483 /* Calculate the index of start/end point of each bucket. */
1484 for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) {
1485 t = i + BUCKET_A(c0);
1486 BUCKET_A(c0) = i + j; /* start point */
>>> CID 1291023: (TAINTED_SCALAR)
>>> Using tainted variable "(c0 << 8) | c0" as an index to pointer "bucket_B".
1487 i = t + BUCKET_B(c0, c0);
1488 for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) {
1489 j += BUCKET_BSTAR(c0, c1);
1490 BUCKET_BSTAR(c0, c1) = j; /* end point */
1491 i += BUCKET_B(c0, c1);
1492 }
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1602 in sort_typeBstar()
1596
1597 /* Move all type B* suffixes to the correct position. */
1598 for(i = t, j = BUCKET_BSTAR(c0, c1);
1599 j <= k;
1600 --i, --k) { SA[i] = SA[k]; }
1601 }
>>> CID 1291023: (TAINTED_SCALAR)
>>> Using tainted variable "(c0 << 8) | c0" as an index to pointer "bucket_B".
1602 BUCKET_BSTAR(c0, c0 + 1) = i - BUCKET_B(c0, c0) + 1; /* start point */
1603 BUCKET_B(c0, c0) = i; /* end point */
1604 }
1605 }
1606
1607 return m;
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1603 in sort_typeBstar()
1597 /* Move all type B* suffixes to the correct position. */
1598 for(i = t, j = BUCKET_BSTAR(c0, c1);
1599 j <= k;
1600 --i, --k) { SA[i] = SA[k]; }
1601 }
1602 BUCKET_BSTAR(c0, c0 + 1) = i - BUCKET_B(c0, c0) + 1; /* start point */
>>> CID 1291023: (TAINTED_SCALAR)
>>> Using tainted variable "(c0 << 8) | c0" as an index to pointer "bucket_B".
1603 BUCKET_B(c0, c0) = i; /* end point */
1604 }
1605 }
1606
1607 return m;
1608 }
** CID 1291034: (UNINIT)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1229 in tr_introsort()
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1229 in tr_introsort()
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1230 in tr_introsort()
________________________________________________________________________________________________________
*** CID 1291034: (UNINIT)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1229 in tr_introsort()
1223 } else {
1224 STACK_POP5(ISAd, first, last, limit, trlink);
1225 }
1226 }
1227 } else if(limit == -2) {
1228 /* tandem repeat copy */
>>> CID 1291034: (UNINIT)
>>> Using uninitialized value "stack[--ssize].b".
1229 a = stack[--ssize].b, b = stack[ssize].c;
1230 if(stack[ssize].d == 0) {
1231 tr_copy(ISA, SA, first, a, b, last, ISAd - ISA);
1232 } else {
1233 if(0 <= trlink) { stack[trlink].d = -1; }
1234 tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA);
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1229 in tr_introsort()
1223 } else {
1224 STACK_POP5(ISAd, first, last, limit, trlink);
1225 }
1226 }
1227 } else if(limit == -2) {
1228 /* tandem repeat copy */
>>> CID 1291034: (UNINIT)
>>> Using uninitialized value "stack[ssize].c".
1229 a = stack[--ssize].b, b = stack[ssize].c;
1230 if(stack[ssize].d == 0) {
1231 tr_copy(ISA, SA, first, a, b, last, ISAd - ISA);
1232 } else {
1233 if(0 <= trlink) { stack[trlink].d = -1; }
1234 tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA);
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 1230 in tr_introsort()
1224 STACK_POP5(ISAd, first, last, limit, trlink);
1225 }
1226 }
1227 } else if(limit == -2) {
1228 /* tandem repeat copy */
1229 a = stack[--ssize].b, b = stack[ssize].c;
>>> CID 1291034: (UNINIT)
>>> Using uninitialized value "stack[ssize].d".
1230 if(stack[ssize].d == 0) {
1231 tr_copy(ISA, SA, first, a, b, last, ISAd - ISA);
1232 } else {
1233 if(0 <= trlink) { stack[trlink].d = -1; }
1234 tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA);
1235 }
** CID 1291063: Memory - illegal accesses (OVERRUN)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 217 in ss_isqrt()
________________________________________________________________________________________________________
*** CID 1291063: Memory - illegal accesses (OVERRUN)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/divsufsort.c: 217 in ss_isqrt()
211 y = sqq_table[x >> ((e - 6) - (e & 1))] << ((e >> 1) - 7);
212 if(e >= 24) { y = (y + 1 + x / y) >> 1; }
213 y = (y + 1 + x / y) >> 1;
214 } else if(e >= 8) {
215 y = (sqq_table[x >> ((e - 6) - (e & 1))] >> (7 - (e >> 1))) + 1;
216 } else {
>>> CID 1291063: Memory - illegal accesses (OVERRUN)
>>> Overrunning array "sqq_table" of 256 4-byte elements at element index 1048575 (byte offset 4194300) using index "x" (which evaluates to 1048575).
217 return sqq_table[x] >> 4;
218 }
219
220 return (x < (y * y)) ? y - 1 : y;
221 }
222
** CID 1399573: Resource leaks (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/managed_lock/AcquireRequest.cc: 62 in librbd::managed_lock::AcquireRequest<librbd::MockImageCtx>::AcquireRequest(librados::IoCtx &, librbd::MockImageWatcher *, ContextWQ *, 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>> &, bool, bool, unsigned int, Context *)()
________________________________________________________________________________________________________
*** CID 1399573: Resource leaks (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/managed_lock/AcquireRequest.cc: 62 in librbd::managed_lock::AcquireRequest<librbd::MockImageCtx>::AcquireRequest(librados::IoCtx &, librbd::MockImageWatcher *, ContextWQ *, 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>> &, bool, bool, unsigned int, Context *)()
56 : m_ioctx(ioctx), m_watcher(watcher),
57 m_cct(reinterpret_cast<CephContext *>(m_ioctx.cct())),
58 m_work_queue(work_queue), m_oid(oid), m_cookie(cookie),
59 m_exclusive(exclusive),
60 m_blacklist_on_break_lock(blacklist_on_break_lock),
61 m_blacklist_expire_seconds(blacklist_expire_seconds),
>>> CID 1399573: Resource leaks (CTOR_DTOR_LEAK)
>>> The constructor allocates field "m_on_finish" of "librbd::managed_lock::AcquireRequest<librbd::MockImageCtx>" but the destructor and whatever functions it calls do not free it.
62 m_on_finish(new C_AsyncCallback<ContextWQ>(work_queue, on_finish)) {
63 }
64
65 template <typename I>
66 AcquireRequest<I>::~AcquireRequest() {
67 }
** CID 1399574: Resource leaks (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/managed_lock/AcquireRequest.cc: 62 in librbd::managed_lock::AcquireRequest<librbd::ImageCtx>::AcquireRequest(librados::IoCtx &, librbd::Watcher *, ContextWQ *, 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>> &, bool, bool, unsigned int, Context *)()
________________________________________________________________________________________________________
*** CID 1399574: Resource leaks (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/managed_lock/AcquireRequest.cc: 62 in librbd::managed_lock::AcquireRequest<librbd::ImageCtx>::AcquireRequest(librados::IoCtx &, librbd::Watcher *, ContextWQ *, 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>> &, bool, bool, unsigned int, Context *)()
56 : m_ioctx(ioctx), m_watcher(watcher),
57 m_cct(reinterpret_cast<CephContext *>(m_ioctx.cct())),
58 m_work_queue(work_queue), m_oid(oid), m_cookie(cookie),
59 m_exclusive(exclusive),
60 m_blacklist_on_break_lock(blacklist_on_break_lock),
61 m_blacklist_expire_seconds(blacklist_expire_seconds),
>>> CID 1399574: Resource leaks (CTOR_DTOR_LEAK)
>>> The constructor allocates field "m_on_finish" of "librbd::managed_lock::AcquireRequest<librbd::ImageCtx>" but the destructor and whatever functions it calls do not free it.
62 m_on_finish(new C_AsyncCallback<ContextWQ>(work_queue, on_finish)) {
63 }
64
65 template <typename I>
66 AcquireRequest<I>::~AcquireRequest() {
67 }
** CID 1399575: (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3402 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3411 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3413 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
________________________________________________________________________________________________________
*** CID 1399575: (DC.WEAK_CRYPTO)
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3402 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
3396
3397 // write something into parent
3398 char test_data[TEST_IO_SIZE + 1];
3399 char zero_data[TEST_IO_SIZE + 1];
3400 int i;
3401 for (i = 0; i < TEST_IO_SIZE; ++i)
>>> CID 1399575: (DC.WEAK_CRYPTO)
>>> "rand" should not be used for security related applications, as linear congruential algorithms are too easy to break.
3402 test_data[i] = (char) (rand() % (126 - 33) + 33);
3403 test_data[TEST_IO_SIZE] = '\0';
3404 memset(zero_data, 0, sizeof(zero_data));
3405
3406 // generate a random map which covers every objects with random
3407 // offset
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3411 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
3405
3406 // generate a random map which covers every objects with random
3407 // offset
3408 int count = 0;
3409 map<uint64_t, uint64_t> write_tracker;
3410 while (count < 10) {
>>> CID 1399575: (DC.WEAK_CRYPTO)
>>> "rand" should not be used for security related applications, as linear congruential algorithms are too easy to break.
3411 uint64_t ono = rand() % object_num;
3412 if (write_tracker.find(ono) == write_tracker.end()) {
3413 uint64_t offset = rand() % (object_size - TEST_IO_SIZE);
3414 write_tracker.insert(pair<uint64_t, uint64_t>(ono, offset));
3415 count++;
3416 }
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3413 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
3407 // offset
3408 int count = 0;
3409 map<uint64_t, uint64_t> write_tracker;
3410 while (count < 10) {
3411 uint64_t ono = rand() % object_num;
3412 if (write_tracker.find(ono) == write_tracker.end()) {
>>> CID 1399575: (DC.WEAK_CRYPTO)
>>> "rand" should not be used for security related applications, as linear congruential algorithms are too easy to break.
3413 uint64_t offset = rand() % (object_size - TEST_IO_SIZE);
3414 write_tracker.insert(pair<uint64_t, uint64_t>(ono, offset));
3415 count++;
3416 }
3417 }
3418
** CID 1399576: (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/image/RefreshRequest.cc: 34 in librbd::image::RefreshRequest<librbd::<unnamed>::MockRefreshImageCtx>::RefreshRequest(librbd::<unnamed>::MockRefreshImageCtx &, bool, bool, Context *)()
/home/brad/working/src/ceph/src/librbd/image/RefreshRequest.cc: 34 in librbd::image::RefreshRequest<librbd::ImageCtx>::RefreshRequest(librbd::ImageCtx &, bool, bool, Context *)()
________________________________________________________________________________________________________
*** CID 1399576: (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/image/RefreshRequest.cc: 34 in librbd::image::RefreshRequest<librbd::<unnamed>::MockRefreshImageCtx>::RefreshRequest(librbd::<unnamed>::MockRefreshImageCtx &, bool, bool, Context *)()
28
29 template <typename I>
30 RefreshRequest<I>::RefreshRequest(I &image_ctx, bool acquiring_lock,
31 bool skip_open_parent, Context *on_finish)
32 : m_image_ctx(image_ctx), m_acquiring_lock(acquiring_lock),
33 m_skip_open_parent_image(skip_open_parent),
>>> CID 1399576: (CTOR_DTOR_LEAK)
>>> The constructor allocates field "m_on_finish" of "librbd::image::RefreshRequest<librbd::<unnamed>::MockRefreshImageCtx>" but the destructor and whatever functions it calls do not free it.
34 m_on_finish(create_async_context_callback(m_image_ctx, on_finish)),
35 m_error_result(0), m_flush_aio(false), m_exclusive_lock(nullptr),
36 m_object_map(nullptr), m_journal(nullptr), m_refresh_parent(nullptr) {
37 }
38
39 template <typename I>
/home/brad/working/src/ceph/src/librbd/image/RefreshRequest.cc: 34 in librbd::image::RefreshRequest<librbd::ImageCtx>::RefreshRequest(librbd::ImageCtx &, bool, bool, Context *)()
28
29 template <typename I>
30 RefreshRequest<I>::RefreshRequest(I &image_ctx, bool acquiring_lock,
31 bool skip_open_parent, Context *on_finish)
32 : m_image_ctx(image_ctx), m_acquiring_lock(acquiring_lock),
33 m_skip_open_parent_image(skip_open_parent),
>>> CID 1399576: (CTOR_DTOR_LEAK)
>>> The constructor allocates field "m_on_finish" of "librbd::image::RefreshRequest<librbd::ImageCtx>" but the destructor and whatever functions it calls do not free it.
34 m_on_finish(create_async_context_callback(m_image_ctx, on_finish)),
35 m_error_result(0), m_flush_aio(false), m_exclusive_lock(nullptr),
36 m_object_map(nullptr), m_journal(nullptr), m_refresh_parent(nullptr) {
37 }
38
39 template <typename I>
** CID 1399577: (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/exclusive_lock/PreReleaseRequest.cc: 37 in librbd::exclusive_lock::PreReleaseRequest<librbd::MockImageCtx>::PreReleaseRequest(librbd::MockImageCtx &, bool, Context *)()
/home/brad/working/src/ceph/src/librbd/exclusive_lock/PreReleaseRequest.cc: 37 in librbd::exclusive_lock::PreReleaseRequest<librbd::ImageCtx>::PreReleaseRequest(librbd::ImageCtx &, bool, Context *)()
________________________________________________________________________________________________________
*** CID 1399577: (CTOR_DTOR_LEAK)
/home/brad/working/src/ceph/src/librbd/exclusive_lock/PreReleaseRequest.cc: 37 in librbd::exclusive_lock::PreReleaseRequest<librbd::MockImageCtx>::PreReleaseRequest(librbd::MockImageCtx &, bool, Context *)()
31 }
32
33 template <typename I>
34 PreReleaseRequest<I>::PreReleaseRequest(I &image_ctx, bool shutting_down,
35 Context *on_finish)
36 : m_image_ctx(image_ctx),
>>> CID 1399577: (CTOR_DTOR_LEAK)
>>> The constructor allocates field "m_on_finish" of "librbd::exclusive_lock::PreReleaseRequest<librbd::MockImageCtx>" but the destructor and whatever functions it calls do not free it.
37 m_on_finish(create_async_context_callback(image_ctx, on_finish)),
38 m_shutting_down(shutting_down), m_error_result(0), m_object_map(nullptr),
39 m_journal(nullptr) {
40 }
41
42 template <typename I>
/home/brad/working/src/ceph/src/librbd/exclusive_lock/PreReleaseRequest.cc: 37 in librbd::exclusive_lock::PreReleaseRequest<librbd::ImageCtx>::PreReleaseRequest(librbd::ImageCtx &, bool, Context *)()
31 }
32
33 template <typename I>
34 PreReleaseRequest<I>::PreReleaseRequest(I &image_ctx, bool shutting_down,
35 Context *on_finish)
36 : m_image_ctx(image_ctx),
>>> CID 1399577: (CTOR_DTOR_LEAK)
>>> The constructor allocates field "m_on_finish" of "librbd::exclusive_lock::PreReleaseRequest<librbd::ImageCtx>" but the destructor and whatever functions it calls do not free it.
37 m_on_finish(create_async_context_callback(image_ctx, on_finish)),
38 m_shutting_down(shutting_down), m_error_result(0), m_object_map(nullptr),
39 m_journal(nullptr) {
40 }
41
42 template <typename I>
** CID 1399578: (FORWARD_NULL)
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
________________________________________________________________________________________________________
*** CID 1399578: (FORWARD_NULL)
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
523
524 int AsyncMessenger::_send_message(Message *m, const entity_inst_t& dest)
525 {
526 FUNCTRACE();
527 if (m && m->get_type() == CEPH_MSG_OSD_OP)
528 OID_EVENT_TRACE(((MOSDOp *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP");
>>> CID 1399578: (FORWARD_NULL)
>>> Comparing "m" to null implies that "m" might be null.
529 else if (m && m->get_type() == CEPH_MSG_OSD_OPREPLY)
530 OID_EVENT_TRACE(((MOSDOpReply *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP_REPLY");
531
532 ldout(cct, 1) << __func__ << "--> " << dest.name << " "
533 << dest.addr << " -- " << *m << " -- ?+"
534 << m->get_data().length() << " " << m << dendl;
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
523
524 int AsyncMessenger::_send_message(Message *m, const entity_inst_t& dest)
525 {
526 FUNCTRACE();
527 if (m && m->get_type() == CEPH_MSG_OSD_OP)
528 OID_EVENT_TRACE(((MOSDOp *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP");
>>> CID 1399578: (FORWARD_NULL)
>>> Comparing "m" to null implies that "m" might be null.
529 else if (m && m->get_type() == CEPH_MSG_OSD_OPREPLY)
530 OID_EVENT_TRACE(((MOSDOpReply *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP_REPLY");
531
532 ldout(cct, 1) << __func__ << "--> " << dest.name << " "
533 << dest.addr << " -- " << *m << " -- ?+"
534 << m->get_data().length() << " " << m << dendl;
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
523
524 int AsyncMessenger::_send_message(Message *m, const entity_inst_t& dest)
525 {
526 FUNCTRACE();
527 if (m && m->get_type() == CEPH_MSG_OSD_OP)
528 OID_EVENT_TRACE(((MOSDOp *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP");
>>> CID 1399578: (FORWARD_NULL)
>>> Comparing "m" to null implies that "m" might be null.
529 else if (m && m->get_type() == CEPH_MSG_OSD_OPREPLY)
530 OID_EVENT_TRACE(((MOSDOpReply *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP_REPLY");
531
532 ldout(cct, 1) << __func__ << "--> " << dest.name << " "
533 << dest.addr << " -- " << *m << " -- ?+"
534 << m->get_data().length() << " " << m << dendl;
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 529 in AsyncMessenger::_send_message(Message *, const entity_inst_t &)()
523
524 int AsyncMessenger::_send_message(Message *m, const entity_inst_t& dest)
525 {
526 FUNCTRACE();
527 if (m && m->get_type() == CEPH_MSG_OSD_OP)
528 OID_EVENT_TRACE(((MOSDOp *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP");
>>> CID 1399578: (FORWARD_NULL)
>>> Comparing "m" to null implies that "m" might be null.
529 else if (m && m->get_type() == CEPH_MSG_OSD_OPREPLY)
530 OID_EVENT_TRACE(((MOSDOpReply *)m)->get_oid().name.c_str(), "SEND_MSG_OSD_OP_REPLY");
531
532 ldout(cct, 1) << __func__ << "--> " << dest.name << " "
533 << dest.addr << " -- " << *m << " -- ?+"
534 << m->get_data().length() << " " << m << dendl;
** CID 1399579: Program hangs (LOCK)
/home/brad/working/src/ceph/src/msg/simple/SimpleMessenger.cc: 315 in SimpleMessenger::client_bind(const entity_addr_t &)()
________________________________________________________________________________________________________
*** CID 1399579: Program hangs (LOCK)
/home/brad/working/src/ceph/src/msg/simple/SimpleMessenger.cc: 315 in SimpleMessenger::client_bind(const entity_addr_t &)()
309
310 int SimpleMessenger::client_bind(const entity_addr_t &bind_addr)
311 {
312 lock.Lock();
313 if (did_bind) {
314 assert(my_inst.addr == bind_addr);
>>> CID 1399579: Program hangs (LOCK)
>>> Returning without unlocking "this->lock._m".
315 return 0;
316 }
317 if (started) {
318 ldout(cct,10) << "rank.bind already started" << dendl;
319 lock.Unlock();
320 return -1;
** CID 1399580: Program hangs (LOCK)
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 388 in AsyncMessenger::client_bind(const entity_addr_t &)()
________________________________________________________________________________________________________
*** CID 1399580: Program hangs (LOCK)
/home/brad/working/src/ceph/src/msg/async/AsyncMessenger.cc: 388 in AsyncMessenger::client_bind(const entity_addr_t &)()
382
383 int AsyncMessenger::client_bind(const entity_addr_t &bind_addr)
384 {
385 lock.Lock();
386 if (did_bind) {
387 assert(my_inst.addr == bind_addr);
>>> CID 1399580: Program hangs (LOCK)
>>> Returning without unlocking "this->lock._m".
388 return 0;
389 }
390 if (started) {
391 ldout(cct, 10) << __func__ << " already started" << dendl;
392 lock.Unlock();
393 return -1;
** CID 1399581: Concurrent data access violations (MISSING_LOCK)
/home/brad/working/src/ceph/src/rgw/rgw_file.h: 536 in rgw::RGWFileHandle::set_times(std::chrono::time_point<ceph::time_detail::real_clock, std::chrono::duration<unsigned long, std::ratio<(long)1, (long)1000000000>>>)()
________________________________________________________________________________________________________
*** CID 1399581: Concurrent data access violations (MISSING_LOCK)
/home/brad/working/src/ceph/src/rgw/rgw_file.h: 536 in rgw::RGWFileHandle::set_times(std::chrono::time_point<ceph::time_detail::real_clock, std::chrono::duration<unsigned long, std::ratio<(long)1, (long)1000000000>>>)()
530 state.size = size;
531 }
532
533 void set_times(real_time t) {
534 state.ctime = real_clock::to_timespec(t);
535 state.mtime = state.ctime;
>>> CID 1399581: Concurrent data access violations (MISSING_LOCK)
>>> Accessing "this->state.atime" without holding lock "rgw::RGWFileHandle.mtx". Elsewhere, "_ZN3rgw13RGWFileHandle5StateE.atime" is accessed with "rgw::RGWFileHandle.mtx" held 2 out of 3 times (2 of these accesses strongly imply that it is necessary).
536 state.atime = state.ctime;
537 }
538
539 void set_ctime(const struct timespec &ts) {
540 state.ctime = ts;
541 }
** CID 1399582: Integer handling issues (NO_EFFECT)
/home/brad/working/src/ceph/src/osd/PG.cc: 2536 in PG::_update_calc_stats()()
________________________________________________________________________________________________________
*** CID 1399582: Integer handling issues (NO_EFFECT)
/home/brad/working/src/ceph/src/osd/PG.cc: 2536 in PG::_update_calc_stats()()
2530 osd_missing = peer_missing[p].num_missing();
2531 object_copies += peer_info[p].stats.stats.sum.num_objects;
2532 }
2533 missing += osd_missing;
2534 // Count non-missing objects not in up as misplaced
2535 if (!in_up)
>>> CID 1399582: Integer handling issues (NO_EFFECT)
>>> This less-than-zero comparison of an unsigned value is never true. "0UL > num_objects - osd_missing".
2536 misplaced += MAX(0, num_objects - osd_missing);
2537 } else {
2538 assert(in_up && !in_acting);
2539
2540 // If this peer has more objects then it should, ignore them
2541 backfilled += MIN(num_objects, peer_info[p].stats.stats.sum.num_objects);
** CID 1399583: Memory - corruptions (OVERRUN)
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 5041 in TestLibRBD_ExclusiveLock_Test::TestBody()()
________________________________________________________________________________________________________
*** CID 1399583: Memory - corruptions (OVERRUN)
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 5041 in TestLibRBD_ExclusiveLock_Test::TestBody()()
5035 char *lock_owners[1];
5036 size_t max_lock_owners = 0;
5037 ASSERT_EQ(-ERANGE, rbd_lock_get_owners(image1, &lock_mode, lock_owners,
5038 &max_lock_owners));
5039 ASSERT_EQ(1U, max_lock_owners);
5040
>>> CID 1399583: Memory - corruptions (OVERRUN)
>>> Assigning: "max_lock_owners" = "2UL".
5041 max_lock_owners = 2;
5042 ASSERT_EQ(0, rbd_lock_get_owners(image1, &lock_mode, lock_owners,
5043 &max_lock_owners));
5044 ASSERT_EQ(RBD_LOCK_MODE_EXCLUSIVE, lock_mode);
5045 ASSERT_STRNE("", lock_owners[0]);
5046 ASSERT_EQ(1U, max_lock_owners);
** CID 1399584: Memory - illegal accesses (OVERRUN)
/home/brad/working/src/ceph/src/zstd/lib/compress/zstd_opt.h: 523 in ZSTD_compressBlock_opt_generic()
________________________________________________________________________________________________________
*** CID 1399584: Memory - illegal accesses (OVERRUN)
/home/brad/working/src/ceph/src/zstd/lib/compress/zstd_opt.h: 523 in ZSTD_compressBlock_opt_generic()
517 opt[cur].rep[0] = ((opt[cur].off==ZSTD_REP_MOVE_OPT) && (mlen != 1)) ? (opt[cur-mlen].rep[0] - 1) : (opt[cur-mlen].rep[opt[cur].off]);
518 }
519
520 best_mlen = minMatch;
521 { U32 i, last_i = ZSTD_REP_CHECK + (mlen != 1);
522 for (i=(opt[cur].mlen != 1); i<last_i; i++) { /* check rep */
>>> CID 1399584: Memory - illegal accesses (OVERRUN)
>>> Overrunning array "(opt + cur).rep" of 3 4-byte elements at element index 4 (byte offset 16) using index "i" (which evaluates to 4).
523 const S32 repCur = (i==ZSTD_REP_MOVE_OPT) ? (opt[cur].rep[0] - 1) : opt[cur].rep[i];
524 if ( (repCur > 0) && (repCur < (S32)(inr-prefixStart))
525 && (MEM_readMINMATCH(inr, minMatch) == MEM_readMINMATCH(inr - repCur, minMatch))) {
526 mlen = (U32)ZSTD_count(inr+minMatch, inr+minMatch - repCur, iend) + minMatch;
527
528 if (mlen > sufficient_len || cur + mlen >= ZSTD_OPT_NUM) {
** CID 1399585: Resource leaks (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3483 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
________________________________________________________________________________________________________
*** CID 1399585: Resource leaks (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/librbd/test_librbd.cc: 3483 in TestLibRBD_FlattenNoEmptyObjects_Test::TestBody()()
3477 printf("flattening clone: \"%s\"\n", child_name.c_str());
3478 ASSERT_EQ(0, rbd_flatten(child));
3479
3480 printf("check whether child image has the same set of objects as parent\n");
3481 rbd_image_info_t c_info;
3482 ASSERT_EQ(0, rbd_stat(child, &c_info, sizeof(c_info)));
>>> CID 1399585: Resource leaks (RESOURCE_LEAK)
>>> Variable "list_ctx" going out of scope leaks the storage it points to.
3483 ASSERT_EQ(0, rados_nobjects_list_open(d_ioctx, &list_ctx));
3484 while (rados_nobjects_list_next(list_ctx, &entry, NULL, NULL) != -ENOENT) {
3485 if (strstr(entry, c_info.block_name_prefix)) {
3486 const char *block_name_suffix = entry + strlen(c_info.block_name_prefix) + 1;
3487 set<string>::iterator it = obj_checker.find(block_name_suffix);
3488 ASSERT_TRUE(it != obj_checker.end());
** CID 1399586: (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1827 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1826 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1825 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1823 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1821 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1819 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1818 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1817 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1816 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1815 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1813 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1811 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1810 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1809 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1807 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1805 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1800 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1799 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1798 in LibCephFS_OperationsOnRoot_Test::TestBody()()
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1797 in LibCephFS_OperationsOnRoot_Test::TestBody()()
________________________________________________________________________________________________________
*** CID 1399586: (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1827 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
1824
1825 ASSERT_EQ(ceph_symlink(cmount, "/", "/"), -EEXIST);
1826 ASSERT_EQ(ceph_symlink(cmount, dirname, "/"), -EEXIST);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1827 ASSERT_EQ(ceph_symlink(cmount, "nonExistingDir", "/"), -EEXIST);
1828
1829 ceph_shutdown(cmount);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1826 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
1824
1825 ASSERT_EQ(ceph_symlink(cmount, "/", "/"), -EEXIST);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1826 ASSERT_EQ(ceph_symlink(cmount, dirname, "/"), -EEXIST);
1827 ASSERT_EQ(ceph_symlink(cmount, "nonExistingDir", "/"), -EEXIST);
1828
1829 ceph_shutdown(cmount);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1825 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
1824
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1825 ASSERT_EQ(ceph_symlink(cmount, "/", "/"), -EEXIST);
1826 ASSERT_EQ(ceph_symlink(cmount, dirname, "/"), -EEXIST);
1827 ASSERT_EQ(ceph_symlink(cmount, "nonExistingDir", "/"), -EEXIST);
1828
1829 ceph_shutdown(cmount);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1823 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
1824
1825 ASSERT_EQ(ceph_symlink(cmount, "/", "/"), -EEXIST);
1826 ASSERT_EQ(ceph_symlink(cmount, dirname, "/"), -EEXIST);
1827 ASSERT_EQ(ceph_symlink(cmount, "nonExistingDir", "/"), -EEXIST);
1828
1829 ceph_shutdown(cmount);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1821 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
1824
1825 ASSERT_EQ(ceph_symlink(cmount, "/", "/"), -EEXIST);
1826 ASSERT_EQ(ceph_symlink(cmount, dirname, "/"), -EEXIST);
1827 ASSERT_EQ(ceph_symlink(cmount, "nonExistingDir", "/"), -EEXIST);
1828
1829 ceph_shutdown(cmount);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1819 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
1824
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1818 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
1823 ASSERT_EQ(ceph_mknod(cmount, "/", 0, 0), -EEXIST);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1817 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
1822
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1816 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
1821 ASSERT_EQ(ceph_mkdir(cmount, "/", 0777), -EEXIST);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1815 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
1819 ASSERT_EQ(ceph_rename(cmount, "/", "nonExistingDir"), -EBUSY);
1820
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1813 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1807 ASSERT_EQ(ceph_rmdir(cmount, "/"), -EBUSY);
1808
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
1817 ASSERT_EQ(ceph_rename(cmount, "nonExistingDir", "/"), -EBUSY);
1818 ASSERT_EQ(ceph_rename(cmount, "/", dirname), -EBUSY);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1811 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1805 ASSERT_EQ(ceph_mkdir(cmount, dirname, 0755), 0);
1806
1807 ASSERT_EQ(ceph_rmdir(cmount, "/"), -EBUSY);
1808
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
1816 ASSERT_EQ(ceph_rename(cmount, dirname, "/"), -EBUSY);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1810 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1804
1805 ASSERT_EQ(ceph_mkdir(cmount, dirname, 0755), 0);
1806
1807 ASSERT_EQ(ceph_rmdir(cmount, "/"), -EBUSY);
1808
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
1815 ASSERT_EQ(ceph_rename(cmount, "/", "/"), -EBUSY);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1809 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1803 sprintf(dirname, "/somedir%x", getpid());
1804
1805 ASSERT_EQ(ceph_mkdir(cmount, dirname, 0755), 0);
1806
1807 ASSERT_EQ(ceph_rmdir(cmount, "/"), -EBUSY);
1808
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
1813 ASSERT_EQ(ceph_unlink(cmount, "/"), -EISDIR);
1814
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1807 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1801
1802 char dirname[32];
1803 sprintf(dirname, "/somedir%x", getpid());
1804
1805 ASSERT_EQ(ceph_mkdir(cmount, dirname, 0755), 0);
1806
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1807 ASSERT_EQ(ceph_rmdir(cmount, "/"), -EBUSY);
1808
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
1811 ASSERT_EQ(ceph_link(cmount, "nonExisitingDir", "/"), -ENOENT);
1812
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1805 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1799 ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
1800 ASSERT_EQ(ceph_mount(cmount, "/"), 0);
1801
1802 char dirname[32];
1803 sprintf(dirname, "/somedir%x", getpid());
1804
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1805 ASSERT_EQ(ceph_mkdir(cmount, dirname, 0755), 0);
1806
1807 ASSERT_EQ(ceph_rmdir(cmount, "/"), -EBUSY);
1808
1809 ASSERT_EQ(ceph_link(cmount, "/", "/"), -EEXIST);
1810 ASSERT_EQ(ceph_link(cmount, dirname, "/"), -EEXIST);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1800 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1794 TEST(LibCephFS, OperationsOnRoot)
1795 {
1796 struct ceph_mount_info *cmount;
1797 ASSERT_EQ(ceph_create(&cmount, NULL), 0);
1798 ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0);
1799 ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1800 ASSERT_EQ(ceph_mount(cmount, "/"), 0);
1801
1802 char dirname[32];
1803 sprintf(dirname, "/somedir%x", getpid());
1804
1805 ASSERT_EQ(ceph_mkdir(cmount, dirname, 0755), 0);
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1799 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1793
1794 TEST(LibCephFS, OperationsOnRoot)
1795 {
1796 struct ceph_mount_info *cmount;
1797 ASSERT_EQ(ceph_create(&cmount, NULL), 0);
1798 ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1799 ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
1800 ASSERT_EQ(ceph_mount(cmount, "/"), 0);
1801
1802 char dirname[32];
1803 sprintf(dirname, "/somedir%x", getpid());
1804
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1798 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1792 }
1793
1794 TEST(LibCephFS, OperationsOnRoot)
1795 {
1796 struct ceph_mount_info *cmount;
1797 ASSERT_EQ(ceph_create(&cmount, NULL), 0);
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1798 ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0);
1799 ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
1800 ASSERT_EQ(ceph_mount(cmount, "/"), 0);
1801
1802 char dirname[32];
1803 sprintf(dirname, "/somedir%x", getpid());
/home/brad/working/src/ceph/src/test/libcephfs/test.cc: 1797 in LibCephFS_OperationsOnRoot_Test::TestBody()()
1791 ceph_shutdown(cmount);
1792 }
1793
1794 TEST(LibCephFS, OperationsOnRoot)
1795 {
1796 struct ceph_mount_info *cmount;
>>> CID 1399586: (RESOURCE_LEAK)
>>> Variable "cmount" going out of scope leaks the storage it points to.
1797 ASSERT_EQ(ceph_create(&cmount, NULL), 0);
1798 ASSERT_EQ(ceph_conf_read_file(cmount, NULL), 0);
1799 ASSERT_EQ(0, ceph_conf_parse_env(cmount, NULL));
1800 ASSERT_EQ(ceph_mount(cmount, "/"), 0);
1801
1802 char dirname[32];
** CID 1399587: (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/msg/async/net_handler.cc: 178 in ceph::NetHandler::generic_connect(const entity_addr_t &, const entity_addr_t &, bool)()
/home/brad/working/src/ceph/src/msg/async/net_handler.cc: 178 in ceph::NetHandler::generic_connect(const entity_addr_t &, const entity_addr_t &, bool)()
________________________________________________________________________________________________________
*** CID 1399587: (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/msg/async/net_handler.cc: 178 in ceph::NetHandler::generic_connect(const entity_addr_t &, const entity_addr_t &, bool)()
172 if (cct->_conf->ms_bind_before_connect && (!addr.is_blank_ip())) {
173 addr.set_port(0);
174 ret = ::bind(s, addr.get_sockaddr(), addr.get_sockaddr_len());
175 if (ret < 0) {
176 ret = -errno;
177 ldout(cct, 2) << __func__ << " client bind error " << ", " << cpp_strerror(ret) << dendl;
>>> CID 1399587: (RESOURCE_LEAK)
>>> Handle variable "s" going out of scope leaks the handle.
178 return ret;
179 }
180 }
181 }
182
183 ret = ::connect(s, addr.get_sockaddr(), addr.get_sockaddr_len());
/home/brad/working/src/ceph/src/msg/async/net_handler.cc: 178 in ceph::NetHandler::generic_connect(const entity_addr_t &, const entity_addr_t &, bool)()
172 if (cct->_conf->ms_bind_before_connect && (!addr.is_blank_ip())) {
173 addr.set_port(0);
174 ret = ::bind(s, addr.get_sockaddr(), addr.get_sockaddr_len());
175 if (ret < 0) {
176 ret = -errno;
177 ldout(cct, 2) << __func__ << " client bind error " << ", " << cpp_strerror(ret) << dendl;
>>> CID 1399587: (RESOURCE_LEAK)
>>> Handle variable "s" going out of scope leaks the handle.
178 return ret;
179 }
180 }
181 }
182
183 ret = ::connect(s, addr.get_sockaddr(), addr.get_sockaddr_len());
** CID 1399588: Resource leaks (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/zdict.c: 908 in ZDICT_trainFromBuffer_unsafe()
________________________________________________________________________________________________________
*** CID 1399588: Resource leaks (RESOURCE_LEAK)
/home/brad/working/src/ceph/src/zstd/lib/dictBuilder/zdict.c: 908 in ZDICT_trainFromBuffer_unsafe()
902 DISPLAYLEVEL(3, "list %u best segments \n", nb-1);
903 for (u=1; u<nb; u++) {
904 U32 const pos = dictList[u].pos;
905 U32 const length = dictList[u].length;
906 U32 const printedLength = MIN(40, length);
907 if ((pos > samplesBuffSize) || ((pos + length) > samplesBuffSize))
>>> CID 1399588: Resource leaks (RESOURCE_LEAK)
>>> Variable "dictList" going out of scope leaks the storage it points to.
908 return ERROR(GENERIC); /* should never happen */
909 DISPLAYLEVEL(3, "%3u:%3u bytes at pos %8u, savings %7u bytes |",
910 u, length, pos, dictList[u].savings);
911 ZDICT_printHex((const char*)samplesBuffer+pos, printedLength);
912 DISPLAYLEVEL(3, "| \n");
913 } }
** CID 1399589: Insecure data handling (TAINTED_SCALAR)
/home/brad/working/src/ceph/src/librbd/managed_lock/Utils.cc: 26 in librbd::managed_lock::util::decode_lock_cookie(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> &, unsigned long *)()
________________________________________________________________________________________________________
*** CID 1399589: Insecure data handling (TAINTED_SCALAR)
/home/brad/working/src/ceph/src/librbd/managed_lock/Utils.cc: 26 in librbd::managed_lock::util::decode_lock_cookie(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> &, unsigned long *)()
20 return WATCHER_LOCK_TAG;
21 }
22
23 bool decode_lock_cookie(const std::string &tag, uint64_t *handle) {
24 std::string prefix;
25 std::istringstream ss(tag);
>>> CID 1399589: Insecure data handling (TAINTED_SCALAR)
>>> Calling function "operator >>" taints argument "prefix".
26 if (!(ss >> prefix >> *handle) || prefix != WATCHER_LOCK_COOKIE_PREFIX) {
27 return false;
28 }
29 return true;
30 }
31
________________________________________________________________________________________________________
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-2Bn8F-2FSrHHeUw77GfuYhRonfTSUes-2BsyNAqZdZ1oRr4a8LOG1uIo5p-2BRfIuyaLcYfJLSymmhxUQRzPrY0KRXLG1StoyD-2FaQLAlf6yMJ5vQ3JKxioFg44aeyf1d-2BlyRDrqHpTPUd-2FTEWlme5vhYmdCVjz1F65XvYKrfS5baCrOiX4fajHr85QkbZLMTloo-2BWHpf2nU-3D
To manage Coverity Scan email notifications for "ceph-devel@vger.kernel.org", click https://u2389337.ct.sendgrid.net/wf/click?upn=08onrYu34A-2BWcWUl-2F-2BfV0V05UPxvVjWch-2Bd2MGckcRbVDbis712qZDP-2FA8y06Nq4Bco8jcmzhh7FSyvoR0E3-2BDgRcBCQ6OuthHBtaTCGNq9zoLsiw8NWrIF2zsdhfTt-2FbHjZ2ToL3Et9v1-2BrDLungAOjHpQtOY-2BsyLiTVCQEUCU-3D_2sw0G7ICm9mxCh1lYW1t9y1lfDrIerWzLwB67LZ-2Bn8F-2FSrHHeUw77GfuYhRonfTSUes-2BsyNAqZdZ1oRr4a8LOE-2FT7TFobtNXgClUIMSV4gHSPiLdtSjqtCKUkKTXFN5gtFEBuydTCHyxLsf-2FcAHKFEH6xecGTCHAo2x-2Bi-2FuPnxuovxBwkhwu66p1h0Ls5bbb9qHnhIhZ7eqc9uURoDPEYEVJZEQMCc4n7m83lSx-2BFew-3D
next reply other threads:[~2017-01-27 13:23 UTC|newest]
Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-27 13:22 scan-admin [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-08-20 12:22 New Defects reported by Coverity Scan for ceph scan-admin
2022-08-20 13:17 ` Jeff Layton
2022-08-22 3:54 ` Brad Hubbard
2022-08-23 12:52 ` Jeff Layton
2018-01-04 3:32 scan-admin
2017-12-28 1:57 scan-admin
2017-12-21 1:54 scan-admin
2017-12-21 3:34 ` Jos Collin
2017-12-21 4:03 ` Brad Hubbard
2017-12-14 6:49 scan-admin
2017-12-01 2:25 scan-admin
2017-11-23 0:19 scan-admin
2017-11-16 11:35 scan-admin
2017-11-09 11:36 scan-admin
2017-11-02 2:11 scan-admin
2017-10-27 0:31 scan-admin
2017-10-19 3:54 scan-admin
2017-10-12 5:54 scan-admin
2017-10-05 5:08 scan-admin
2017-09-28 5:09 scan-admin
2017-09-21 6:44 scan-admin
2017-09-14 7:19 scan-admin
2017-09-07 5:08 scan-admin
2017-08-31 6:39 scan-admin
2017-08-24 23:32 scan-admin
2017-08-17 3:29 scan-admin
2017-08-10 3:50 scan-admin
2017-08-03 4:57 scan-admin
2017-07-27 3:50 scan-admin
2017-07-28 18:42 ` Gregory Farnum
2017-07-28 22:22 ` Brad Hubbard
2017-07-20 4:08 scan-admin
2017-07-13 5:11 scan-admin
2017-07-06 5:03 scan-admin
2017-06-29 4:08 scan-admin
2017-06-22 4:27 scan-admin
2017-06-15 9:50 scan-admin
2017-06-11 23:46 scan-admin
2017-06-01 4:33 scan-admin
2017-05-25 6:22 scan-admin
2017-05-18 1:44 scan-admin
2017-05-11 5:32 scan-admin
2017-05-04 2:45 scan-admin
2017-04-27 2:22 scan-admin
2017-04-20 5:34 scan-admin
2017-04-13 6:25 scan-admin
2017-04-06 9:40 scan-admin
2017-03-31 1:25 scan-admin
2017-03-23 7:58 scan-admin
2017-03-16 7:37 scan-admin
2017-03-09 6:12 scan-admin
2017-03-02 7:44 scan-admin
2017-02-23 9:09 scan-admin
2017-02-17 2:29 scan-admin
[not found] ` <CAJE9aOMoxWjhq=g+25hfhMhxSCnHAOwAyNhXvkxS1wwBEd3j+A@mail.gmail.com>
2017-02-17 5:19 ` kefu chai
2017-02-05 10:08 scan-admin
2017-01-17 3:01 scan-admin
2017-01-09 10:05 scan-admin
2016-12-30 8:33 scan-admin
2016-12-23 9:16 scan-admin
2016-12-16 8:54 scan-admin
2016-12-09 11:29 scan-admin
2016-12-02 11:08 scan-admin
2016-11-25 7:55 scan-admin
2016-03-19 17:58 scan-admin
2016-03-13 17:40 scan-admin
2016-03-12 18:04 scan-admin
2016-03-05 17:55 scan-admin
2016-03-07 20:59 ` Gregory Farnum
2016-02-27 18:07 scan-admin
2016-02-20 18:26 scan-admin
2016-02-18 20:32 scan-admin
2016-02-13 17:47 scan-admin
2016-02-11 17:57 scan-admin
2016-02-11 22:01 ` Gregory Farnum
2016-02-12 16:36 ` Adam C. Emerson
2016-02-04 20:39 scan-admin
2016-02-03 20:40 scan-admin
2015-05-02 14:37 scan-admin
2015-01-21 1:41 scan-admin
2015-01-16 14:39 scan-admin
2015-01-16 15:17 ` Gregory Farnum
2015-01-16 16:00 ` John Spray
2015-01-16 16:08 ` Sage Weil
[not found] <54b528bef1f63_1b74f3532c63410@scan.coverity.com.mail>
2015-01-13 14:34 ` Sage Weil
2015-01-13 14:16 scan-admin
2015-01-10 14:36 scan-admin
2015-01-10 15:48 ` Haomai Wang
2015-01-09 14:30 scan-admin
2015-01-09 15:26 ` Sage Weil
2015-01-09 15:32 ` Danny Al-Gaaf
2015-01-04 14:14 scan-admin
2014-12-27 14:13 scan-admin
2014-12-28 6:03 ` Sage Weil
2014-12-26 14:19 scan-admin
2014-12-23 14:37 scan-admin
2014-12-21 14:13 scan-admin
2014-12-18 14:19 scan-admin
2014-12-14 14:17 scan-admin
2014-12-07 20:36 scan-admin
2014-12-05 14:11 scan-admin
2014-12-02 14:09 scan-admin
2014-11-25 14:09 scan-admin
2014-11-23 14:08 scan-admin
2014-11-20 14:20 scan-admin
2014-11-14 14:21 scan-admin
2014-11-13 14:21 scan-admin
2014-11-11 20:40 scan-admin
2014-11-09 14:12 scan-admin
2014-10-30 13:19 scan-admin
2014-10-30 16:08 ` Sage Weil
2014-10-28 13:16 scan-admin
2014-10-28 18:26 ` Danny Al-Gaaf
2014-10-26 13:17 scan-admin
2014-10-24 17:55 scan-admin
2014-10-24 17:59 ` Sage Weil
2014-10-17 13:27 scan-admin
2014-10-09 13:23 scan-admin
2014-10-02 13:21 scan-admin
2014-09-25 13:18 scan-admin
2014-09-16 21:40 scan-admin
2014-08-16 21:31 scan-admin
2014-08-09 15:30 scan-admin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=588b49ad335ab_43efc3f3343031c@ss1435.mail \
--to=scan-admin@coverity.com \
--cc=ceph-devel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox