diff --git a/src/burp/burp.h b/src/burp/burp.h index 3fb58a76b9e..d9fa2ae4eae 100644 --- a/src/burp/burp.h +++ b/src/burp/burp.h @@ -708,6 +708,7 @@ enum att_type { // Trigger types enum trig_t { + trig_none = 0, trig_pre_store = 1, // default trig_pre_modify, // default trig_post_erase // default diff --git a/src/burp/restore.epp b/src/burp/restore.epp index aa36e72a748..fa68cc935be 100644 --- a/src/burp/restore.epp +++ b/src/burp/restore.epp @@ -31,6 +31,7 @@ #include #include #include +#include #ifdef HAVE_CTYPE_H #include #endif @@ -1608,7 +1609,7 @@ bool get_acl(BurpGlobals* tdgbl, const TEXT* owner_nm, ISC_QUAD* blob_id, ISC_QU ULONG length = 0; UCHAR item; - USHORT max_segment; + USHORT max_segment = USHRT_MAX; ULONG num_segments; const UCHAR* p = blob_info; @@ -1783,7 +1784,7 @@ void get_array(BurpGlobals* tdgbl, burp_rel* relation, UCHAR* record_buffer) SLONG fld_ranges[2 * MAX_DIMENSION]; SLONG slice_length = 0; SLONG *range; - const SLONG* end_ranges; + const SLONG* end_ranges = fld_ranges; scan_attr_t scan_next_attr; skip_init(&scan_next_attr); att_type attribute; @@ -1851,7 +1852,6 @@ void get_array(BurpGlobals* tdgbl, burp_rel* relation, UCHAR* record_buffer) SLONG last_element_dim[MAX_DIMENSION]; if (return_length != slice_length) { - int upper, lower; // // Ugh! The full array wasn't returned and versions of gbak prior to // V3.2I don't explicitly signal this. We must recompute the top @@ -1974,6 +1974,8 @@ void get_array(BurpGlobals* tdgbl, burp_rel* relation, UCHAR* record_buffer) // dims were (1,2), we would just do a isc_put_slice(1..1, 1..2). // This is applied for any number of dimensions. // + + int upper = 0, lower = 0; for (range = field->fld_ranges, count = 0; range < end_ranges; range += 2, count++) { add_byte(blr, isc_sdl_do2); @@ -3386,7 +3388,7 @@ void get_data(BurpGlobals* tdgbl, burp_rel* relation, WriteRelationReq* req) } } - UCHAR* p; + UCHAR* p = nullptr; if (tdgbl->gbl_sw_transportable) { if (get(tdgbl) != att_xdr_length) @@ -9096,9 +9098,10 @@ bool get_db_creator(BurpGlobals* tdgbl) **************************************/ att_type attribute; scan_attr_t scan_next_attr; - TEXT usr[GDS_NAME_LEN]; - SSHORT uType; - bool userSet, typeSet; + TEXT usr[GDS_NAME_LEN] = {0}; + SSHORT uType = 0; + bool userSet = false; + bool typeSet = false; userSet = typeSet = false; @@ -9422,7 +9425,7 @@ bool get_trigger_old (BurpGlobals* tdgbl, burp_rel* relation) * Get a trigger definition for a relation. * **************************************/ - enum trig_t type; + enum trig_t type = trig_none; att_type attribute; TEXT name[GDS_NAME_LEN]; scan_attr_t scan_next_attr; diff --git a/src/dsql/DdlNodes.epp b/src/dsql/DdlNodes.epp index 8bdb8c9b184..66f62f1ec61 100644 --- a/src/dsql/DdlNodes.epp +++ b/src/dsql/DdlNodes.epp @@ -227,7 +227,8 @@ static void checkForeignKeyTempScope(thread_db* tdbb, jrd_tra* transaction, { AutoCacheRequest request(tdbb, drq_l_rel_info, DYN_REQUESTS); QualifiedName masterRelName; - rel_t masterType, childType; + rel_t masterType = rel_persistent; + rel_t childType = rel_persistent; FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction) RLC_M IN RDB$RELATION_CONSTRAINTS CROSS diff --git a/src/jrd/cvt2.cpp b/src/jrd/cvt2.cpp index 81ca4658ce8..94736deb039 100644 --- a/src/jrd/cvt2.cpp +++ b/src/jrd/cvt2.cpp @@ -973,7 +973,7 @@ USHORT CVT2_make_string2(const dsc* desc, TTypeId to_interp, UCHAR** address, Mo **************************************/ UCHAR* from_buf; USHORT from_len; - TTypeId from_interp; + TTypeId from_interp = ttype_none; fb_assert(desc != NULL); fb_assert(address != NULL); @@ -1004,7 +1004,7 @@ USHORT CVT2_make_string2(const dsc* desc, TTypeId to_interp, UCHAR** address, Mo if (desc->isText()) { - if (from_interp == to_interp || to_interp == ttype_none || to_interp == ttype_binary) + if (from_interp == ttype_none || from_interp == to_interp || to_interp == ttype_none || to_interp == ttype_binary) { *address = from_buf; return from_len; diff --git a/src/jrd/os/posix/unix.cpp b/src/jrd/os/posix/unix.cpp index 780eeb90500..3b276f4cdfc 100644 --- a/src/jrd/os/posix/unix.cpp +++ b/src/jrd/os/posix/unix.cpp @@ -533,7 +533,7 @@ bool PIO_header(thread_db* tdbb, UCHAR* address, unsigned length) const auto dbb = tdbb->getDatabase(); unsigned i; - SINT64 bytes; + SINT64 bytes = 0; PageSpace* const pageSpace = dbb->dbb_page_manager.findPageSpace(DB_PAGE_SPACE); jrd_file* const file = pageSpace->file; diff --git a/src/remote/client/interface.cpp b/src/remote/client/interface.cpp index 731b68266ec..c9f65bf9e19 100644 --- a/src/remote/client/interface.cpp +++ b/src/remote/client/interface.cpp @@ -2011,7 +2011,7 @@ unsigned char* Attachment::getLocalInfo(UCharBuffer& info, unsigned int buffer_l break; } - FB_UINT64 value; + FB_UINT64 value = 0; bool skip = false; switch (*item)