summaryrefslogtreecommitdiff
path: root/sql/wsrep_sst.cc
diff options
context:
space:
mode:
authorNirbhay Choubey <nirbhay@mariadb.com>2015-04-15 11:12:12 -0400
committerNirbhay Choubey <nirbhay@mariadb.com>2015-04-15 11:12:12 -0400
commitd051f6c36beaf6c7ea269d6c174cca7482f3e823 (patch)
treef95ca0530ddf32ac6d9826b444fb9c62822dc044 /sql/wsrep_sst.cc
parenta1f3356bf375495e29faabedd01dce0736d20993 (diff)
downloadmariadb-git-d051f6c36beaf6c7ea269d6c174cca7482f3e823.tar.gz
MDEV-6594: Use separate domain_id for Galera transactions
Post-fix : A typo and better error handling.
Diffstat (limited to 'sql/wsrep_sst.cc')
-rw-r--r--sql/wsrep_sst.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/sql/wsrep_sst.cc b/sql/wsrep_sst.cc
index 512e8f23dd8..d37c6c0e96c 100644
--- a/sql/wsrep_sst.cc
+++ b/sql/wsrep_sst.cc
@@ -451,7 +451,7 @@ static void* sst_joiner_thread (void* a)
} else {
// Scan state ID first followed by wsrep_gtid_domain_id.
char uuid[512];
- uint32 domain_id;
+ long int domain_id;
size_t len= pos - out + 1;
if (len > sizeof(uuid)) goto err; // safety check
@@ -464,14 +464,18 @@ static void* sst_joiner_thread (void* a)
}
else if (wsrep_gtid_mode)
{
+ errno= 0; /* Reset the errno */
domain_id= strtol(pos + 1, NULL, 10);
- if (domain_id < 1000 || domain_id > 0xFFFF)
+ err= errno;
+
+ /* Check if we received a valid gtid_domain_id. */
+ if (err == EINVAL || err == ERANGE || domain_id < 0x0 || domain_id > 0xFFFF)
{
WSREP_ERROR("Failed to get donor wsrep_gtid_domain_id.");
err= EINVAL;
goto err;
} else {
- wsrep_gtid_domain_id= domain_id;
+ wsrep_gtid_domain_id= (uint32) domain_id;
}
}
}