Input validation for mysql-default_session_track_gtids

default_session_track_gtids allows only two values: OFF or OWN_GTID
pull/2941/head
René Cannaò 6 years ago
parent 61bca42ef3
commit d9a85dfc7a

@ -2937,13 +2937,18 @@ bool MySQL_Threads_Handler::set_variable(char *name, const char *value) { // thi
if (variables.default_session_track_gtids) free(variables.default_session_track_gtids);
variables.default_session_track_gtids=NULL;
if (vallen) {
if (strcmp(value,"(null)"))
variables.default_session_track_gtids=strdup(value);
}
if (variables.default_session_track_gtids==NULL) {
variables.default_session_track_gtids=strdup((char *)MYSQL_DEFAULT_SESSION_TRACK_GTIDS); // default
// we only accept 2 value for session_track_gtids = OFF or OWN_GTID
if (strcasecmp(value,(char *)"OFF") == 0) {
// for convention, we stored the value as uppercase
variables.default_session_track_gtids=strdup((char *)"OFF");
return true;
} else if (strcasecmp(value,(char *)"OWN_GTID") == 0) {
// for convention, we stored the value as uppercase
variables.default_session_track_gtids=strdup((char *)"OWN_GTID");
return true;
}
}
return true;
return false; // we couldn't set it to a valid value. It will be reset to default
}

Loading…
Cancel
Save