util: Fix coverity issues

Summary:
util/concurrent_arena.h:
CID 1396145 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
2. uninit_member: Non-static class member free_begin_ is not initialized in this constructor nor in any functions that it calls.
 94    Shard() : allocated_and_unused_(0) {}

util/dynamic_bloom.cc:
	1. Condition hash_func == NULL, taking true branch.

CID 1322821 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
3. uninit_member: Non-static class member data_ is not initialized in this constructor nor in any functions that it calls.
47      hash_func_(hash_func == nullptr ? &BloomHash : hash_func) {}
48

util/file_reader_writer.h:
204 private:
205  AlignedBuffer buffer_;
   	member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize buffer_offset_.
206  uint64_t buffer_offset_;

CID 1418246 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
member_not_init_in_gen_ctor: The compiler-generated constructor for this class does not initialize buffer_len_.
207  size_t buffer_len_;
208};

util/thread_local.cc:
341#endif

CID 1322795 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
3. uninit_member: Non-static class member pthread_key_ is not initialized in this constructor nor in any functions that it calls.
342}

40struct ThreadData {
   	2. uninit_member: Non-static class member next is not initialized in this constructor nor in any functions that it calls.

CID 1400668 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
4. uninit_member: Non-static class member prev is not initialized in this constructor nor in any functions that it calls.
 41  explicit ThreadData(ThreadLocalPtr::StaticMeta* _inst) : entries(), inst(_inst) {}
 42  std::vector<Entry> entries;
   	1. member_decl: Class member declaration for next.
 43  ThreadData* next;
   	3. member_decl: Class member declaration for prev.
 44  ThreadData* prev;
 45  ThreadLocalPtr::StaticMeta* inst;
 46};
Closes https://github.com/facebook/rocksdb/pull/3123

Differential Revision: D6233566

Pulled By: sagar0

fbshipit-source-id: aa2068790ea69787a0035c0db39d59b0c25108db
This commit is contained in:
Prashant D 2017-11-03 14:32:00 -07:00 committed by Facebook Github Bot
parent cfb120f737
commit 4c8f336401
4 changed files with 13 additions and 4 deletions

View File

@ -91,7 +91,7 @@ class ConcurrentArena : public Allocator {
char* free_begin_; char* free_begin_;
std::atomic<size_t> allocated_and_unused_; std::atomic<size_t> allocated_and_unused_;
Shard() : allocated_and_unused_(0) {} Shard() : free_begin_(nullptr), allocated_and_unused_(0) {}
}; };
#ifdef ROCKSDB_SUPPORT_THREAD_LOCAL #ifdef ROCKSDB_SUPPORT_THREAD_LOCAL

View File

@ -44,7 +44,8 @@ DynamicBloom::DynamicBloom(uint32_t num_probes,
: kTotalBits(0), : kTotalBits(0),
kNumBlocks(0), kNumBlocks(0),
kNumProbes(num_probes), kNumProbes(num_probes),
hash_func_(hash_func == nullptr ? &BloomHash : hash_func) {} hash_func_(hash_func == nullptr ? &BloomHash : hash_func),
data_(0) {}
void DynamicBloom::SetRawData(unsigned char* raw_data, uint32_t total_bits, void DynamicBloom::SetRawData(unsigned char* raw_data, uint32_t total_bits,
uint32_t num_blocks) { uint32_t num_blocks) {

View File

@ -201,6 +201,7 @@ class WritableFileWriter {
class FilePrefetchBuffer { class FilePrefetchBuffer {
public: public:
FilePrefetchBuffer() : buffer_offset_(0), buffer_len_(0) {}
Status Prefetch(RandomAccessFileReader* reader, uint64_t offset, size_t n); Status Prefetch(RandomAccessFileReader* reader, uint64_t offset, size_t n);
bool TryReadFromCache(uint64_t offset, size_t n, Slice* result) const; bool TryReadFromCache(uint64_t offset, size_t n, Slice* result) const;

View File

@ -38,7 +38,11 @@ class StaticMeta;
// | thread 3 | void* | void* | void* | <- ThreadData // | thread 3 | void* | void* | void* | <- ThreadData
// --------------------------------------------------- // ---------------------------------------------------
struct ThreadData { struct ThreadData {
explicit ThreadData(ThreadLocalPtr::StaticMeta* _inst) : entries(), inst(_inst) {} explicit ThreadData(ThreadLocalPtr::StaticMeta* _inst)
: entries(),
next(nullptr),
prev(nullptr),
inst(_inst) {}
std::vector<Entry> entries; std::vector<Entry> entries;
ThreadData* next; ThreadData* next;
ThreadData* prev; ThreadData* prev;
@ -300,7 +304,10 @@ void ThreadLocalPtr::StaticMeta::OnThreadExit(void* ptr) {
delete tls; delete tls;
} }
ThreadLocalPtr::StaticMeta::StaticMeta() : next_instance_id_(0), head_(this) { ThreadLocalPtr::StaticMeta::StaticMeta()
: next_instance_id_(0),
head_(this),
pthread_key_(0) {
if (pthread_key_create(&pthread_key_, &OnThreadExit) != 0) { if (pthread_key_create(&pthread_key_, &OnThreadExit) != 0) {
abort(); abort();
} }