Fix use of uninitialized variables

Building with optimization in debug mode revealed code that could in
theory result in undefined behavior.
This commit is contained in:
Markus Mäkelä
2019-02-06 14:10:19 +02:00
parent cc6665c732
commit 08a05d3ab9
7 changed files with 12 additions and 9 deletions

View File

@ -149,7 +149,7 @@ public:
static MXS_ROUTER_SESSION* newSession(MXS_ROUTER* pInstance, MXS_SESSION* pSession) static MXS_ROUTER_SESSION* newSession(MXS_ROUTER* pInstance, MXS_SESSION* pSession)
{ {
RouterType* pRouter = static_cast<RouterType*>(pInstance); RouterType* pRouter = static_cast<RouterType*>(pInstance);
RouterSessionType* pRouter_session; RouterSessionType* pRouter_session = nullptr;
MXS_EXCEPTION_GUARD(pRouter_session = pRouter->newSession(pSession)); MXS_EXCEPTION_GUARD(pRouter_session = pRouter->newSession(pSession));

View File

@ -123,7 +123,7 @@ int test(StorageFactory& factory, istream& in)
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
int rv = EXIT_FAILURE; int rv = EXIT_FAILURE;
StorageFactory* pFactory; StorageFactory* pFactory = nullptr;
if ((argc == 2) || (argc == 3)) if ((argc == 2) || (argc == 3))
{ {
char* libdir = MXS_STRDUP("../../../../../query_classifier/qc_sqlite/"); char* libdir = MXS_STRDUP("../../../../../query_classifier/qc_sqlite/");

View File

@ -131,7 +131,9 @@ HINT* hint_parser(HINT_SESSION* session, GWBUF* request)
int len, residual, state; int len, residual, state;
int found, escape, quoted, squoted; int found, escape, quoted, squoted;
HINT* rval = NULL; HINT* rval = NULL;
char* pname, * lvalue, * hintname = NULL; char* pname = nullptr;
char* lvalue = nullptr;
char* hintname = nullptr;
GWBUF* buf; GWBUF* buf;
HINT_TOKEN* tok; HINT_TOKEN* tok;
HINT_MODE mode = HM_EXECUTE; HINT_MODE mode = HM_EXECUTE;

View File

@ -740,7 +740,7 @@ static void destroyInstance(MXS_FILTER* instance)
static void checkNamedPipe(TPM_INSTANCE* inst) static void checkNamedPipe(TPM_INSTANCE* inst)
{ {
int ret; int ret = 0;
char buffer[2]; char buffer[2];
char buf[4096]; char buf[4096];
char* named_pipe = inst->named_pipe; char* named_pipe = inst->named_pipe;

View File

@ -487,7 +487,7 @@ private:
{ {
result_t rv = IS_SET_SQL_MODE; result_t rv = IS_SET_SQL_MODE;
char c; char c = *pSql_mode;
do do
{ {

View File

@ -58,7 +58,8 @@ bool json_extract_field_names(const char* filename, std::vector<Column>& columns
bool rval = false; bool rval = false;
json_error_t err; json_error_t err;
err.text[0] = '\0'; err.text[0] = '\0';
json_t* obj, * arr; json_t* obj;
json_t* arr = nullptr;
if ((obj = json_load_file(filename, 0, &err)) && (arr = json_object_get(obj, "fields"))) if ((obj = json_load_file(filename, 0, &err)) && (arr = json_object_get(obj, "fields")))
{ {

View File

@ -3053,17 +3053,17 @@ void blr_handle_fake_gtid_list(ROUTER_INSTANCE* router,
static bool blr_handle_missing_files(ROUTER_INSTANCE* router, static bool blr_handle_missing_files(ROUTER_INSTANCE* router,
char* new_file) char* new_file)
{ {
char* fptr; char* fptr = strrchr(new_file, '.');
uint32_t new_fseqno; uint32_t new_fseqno;
uint32_t curr_fseqno; uint32_t curr_fseqno;
char buf[BLRM_BINLOG_NAME_STR_LEN]; char buf[BLRM_BINLOG_NAME_STR_LEN];
char bigbuf[PATH_MAX + 1]; char bigbuf[PATH_MAX + 1];
if (*new_file if (fptr == NULL)
&& (fptr = strrchr(new_file, '.')) == NULL)
{ {
return false; return false;
} }
if (router->fileroot) if (router->fileroot)
{ {
MXS_FREE(router->fileroot); MXS_FREE(router->fileroot);