Merge pull request #5180 from sysown/v3.0-fix_use_after_free_in_proclist

Fix potential 'use-after-free' by Admin 'SHOW PROCESSLIST'
pull/5182/head
René Cannaò 7 months ago committed by GitHub
commit 4f8c5992ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -8126,8 +8126,8 @@ char* MySQL_Session::get_current_query(int max_length) {
}
if (CurrentQuery.stmt_info == NULL) { // text protocol
query_ptr = mybe->server_myds->myconn->query.ptr;
query_len = mybe->server_myds->myconn->query.length;
query_ptr = reinterpret_cast<const char*>(CurrentQuery.QueryPointer);
query_len = CurrentQuery.QueryLength;
} else { // prepared statement
query_ptr = CurrentQuery.stmt_info->query;
query_len = CurrentQuery.stmt_info->query_length;
@ -8145,8 +8145,8 @@ char* MySQL_Session::get_current_query(int max_length) {
res = (char *) malloc(query_len + 1);
if (trunc_query) {
// for truncated queries, add three dots at the end
strncpy(res, query_ptr, query_len - 3);
strncpy(res + (query_len - 3), "...", 3);
memcpy(res, query_ptr, query_len - 3);
memcpy(res + (query_len - 3), "...", 3);
} else {
strncpy(res, query_ptr, query_len);
}
@ -8154,4 +8154,4 @@ char* MySQL_Session::get_current_query(int max_length) {
}
return res;
}
}

Loading…
Cancel
Save