From 3b08f674e3f771b49370edb144dab0958c8cf721 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 31 Aug 2021 08:59:54 +0100 Subject: gentoo resync : 31.08.2021 --- .../files/mariadb-10.3-CVE-2020-15180.patch | 75 ---------------------- 1 file changed, 75 deletions(-) delete mode 100644 dev-db/mariadb/files/mariadb-10.3-CVE-2020-15180.patch (limited to 'dev-db/mariadb/files/mariadb-10.3-CVE-2020-15180.patch') diff --git a/dev-db/mariadb/files/mariadb-10.3-CVE-2020-15180.patch b/dev-db/mariadb/files/mariadb-10.3-CVE-2020-15180.patch deleted file mode 100644 index 85d378f8232c..000000000000 --- a/dev-db/mariadb/files/mariadb-10.3-CVE-2020-15180.patch +++ /dev/null @@ -1,75 +0,0 @@ -https://github.com/MariaDB/server/commit/418850b2df4256da5a722288c2657650dc228842 - ---- a/sql/wsrep_sst.cc -+++ b/sql/wsrep_sst.cc -@@ -1726,24 +1726,65 @@ static int sst_donate_other (const char* method, - return arg.err; - } - -+/* return true if character can be a part of a filename */ -+static bool filename_char(int const c) -+{ -+ return isalnum(c) || (c == '-') || (c == '_') || (c == '.'); -+} -+ -+/* return true if character can be a part of an address string */ -+static bool address_char(int const c) -+{ -+ return filename_char(c) || -+ (c == ':') || (c == '[') || (c == ']') || (c == '/'); -+} -+ -+static bool check_request_str(const char* const str, -+ bool (*check) (int c)) -+{ -+ for (size_t i(0); str[i] != '\0'; ++i) -+ { -+ if (!check(str[i])) -+ { -+ WSREP_WARN("Illegal character in state transfer request: %i (%c).", -+ str[i], str[i]); -+ return true; -+ } -+ } -+ -+ return false; -+} -+ - wsrep_cb_status_t wsrep_sst_donate_cb (void* app_ctx, void* recv_ctx, - const void* msg, size_t msg_len, - const wsrep_gtid_t* current_gtid, - const char* state, size_t state_len, - bool bypass) - { -- /* This will be reset when sync callback is called. -- * Should we set wsrep_ready to FALSE here too? */ -- -- wsrep_config_state->set(WSREP_MEMBER_DONOR); -- - const char* method = (char*)msg; - size_t method_len = strlen (method); -+ -+ if (check_request_str(method, filename_char)) -+ { -+ WSREP_ERROR("Bad SST method name. SST canceled."); -+ return WSREP_CB_FAILURE; -+ } -+ - const char* data = method + method_len + 1; - -+ if (check_request_str(data, address_char)) -+ { -+ WSREP_ERROR("Bad SST address string. SST canceled."); -+ return WSREP_CB_FAILURE; -+ } -+ - char uuid_str[37]; - wsrep_uuid_print (¤t_gtid->uuid, uuid_str, sizeof(uuid_str)); - -+ /* This will be reset when sync callback is called. -+ * Should we set wsrep_ready to FALSE here too? */ -+ wsrep_config_state->set(WSREP_MEMBER_DONOR); -+ - wsp::env env(NULL); - if (env.error()) - { -- cgit v1.2.3