mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Merge branch 'mysql/5.5' into 5.5
This commit is contained in:
commit
df5f25fa7a
13 changed files with 82 additions and 42 deletions
|
@ -1067,8 +1067,7 @@ static void fix_history(String *final_command);
|
|||
|
||||
static COMMANDS *find_command(char *name);
|
||||
static COMMANDS *find_command(char cmd_name);
|
||||
static bool add_line(String &buffer, char *line, ulong line_length,
|
||||
char *in_string, bool *ml_comment, bool truncated);
|
||||
static bool add_line(String &, char *, ulong, char *, bool *, bool);
|
||||
static void remove_cntrl(String &buffer);
|
||||
static void print_table_data(MYSQL_RES *result);
|
||||
static void print_table_data_html(MYSQL_RES *result);
|
||||
|
|
|
@ -12,6 +12,14 @@ before calling SSL_new();
|
|||
|
||||
*** end Note ***
|
||||
|
||||
yaSSL Release notes, version 2.4.4 (8/8/2017)
|
||||
This release of yaSSL fixes an interop issue. A fix for detecting cipher
|
||||
suites with non leading zeros is included as yaSSL only supports cipher
|
||||
suites with leading zeros. Thanks for the report from Security Innovation
|
||||
and Oracle.
|
||||
|
||||
Users interoping with other SSL stacks should update.
|
||||
|
||||
yaSSL Release notes, version 2.4.2 (9/22/2016)
|
||||
This release of yaSSL fixes a medium security vulnerability. A fix for
|
||||
potential AES side channel leaks is included that a local user monitoring
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
Use is subject to license terms.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
|
@ -35,7 +35,7 @@
|
|||
#include "rsa.h"
|
||||
|
||||
|
||||
#define YASSL_VERSION "2.4.2"
|
||||
#define YASSL_VERSION "2.4.4"
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2014, Oracle and/or its affiliates
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1578,6 +1578,10 @@ void ServerHello::Process(input_buffer& input, SSL& ssl)
|
|||
ssl.SetError(badVersion_error);
|
||||
return;
|
||||
}
|
||||
if (cipher_suite_[0] != 0x00) {
|
||||
ssl.SetError(unknown_cipher);
|
||||
return;
|
||||
}
|
||||
ssl.set_pending(cipher_suite_[1]);
|
||||
ssl.set_random(random_, server_end);
|
||||
if (id_len_)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2014, Oracle and/or its affiliates
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1399,12 +1399,17 @@ void SSL::matchSuite(const opaque* peer, uint length)
|
|||
// start with best, if a match we are good, Ciphers are at odd index
|
||||
// since all SSL and TLS ciphers have 0x00 first byte
|
||||
for (uint i = 1; i < secure_.get_parms().suites_size_; i += 2)
|
||||
for (uint j = 1; j < length; j+= 2)
|
||||
if (secure_.use_parms().suites_[i] == peer[j]) {
|
||||
for (uint j = 0; (j + 1) < length; j+= 2) {
|
||||
if (peer[j] != 0x00) {
|
||||
continue; // only 0x00 first byte supported
|
||||
}
|
||||
|
||||
if (secure_.use_parms().suites_[i] == peer[j + 1]) {
|
||||
secure_.use_parms().suite_[0] = 0x00;
|
||||
secure_.use_parms().suite_[1] = peer[j];
|
||||
secure_.use_parms().suite_[1] = peer[j + 1];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
SetError(match_error);
|
||||
}
|
||||
|
@ -2706,4 +2711,3 @@ template mySTL::list<yaSSL::SSL_SESSION*>::iterator find_if<mySTL::list<yaSSL::S
|
|||
template mySTL::list<yaSSL::ThreadError>::iterator find_if<mySTL::list<yaSSL::ThreadError>::iterator, yaSSL::yassl_int_cpp_local2::thr_match>(mySTL::list<yaSSL::ThreadError>::iterator, mySTL::list<yaSSL::ThreadError>::iterator, yaSSL::yassl_int_cpp_local2::thr_match);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -220,6 +220,22 @@ a d
|
|||
3 11120436154190595086
|
||||
drop table t1, t2;
|
||||
End of 5.0 tests
|
||||
#
|
||||
# Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE
|
||||
# (SIG 6 -STRINGS/CTYPE-UTF8.C:5151)
|
||||
#
|
||||
set @@sql_mode='';
|
||||
CREATE TABLE t1(c1 SET('','')CHARACTER SET ucs2);
|
||||
Warnings:
|
||||
Note 1291 Column 'c1' has duplicated value '' in SET
|
||||
INSERT INTO t1 VALUES(990101.102);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'c1' at row 1
|
||||
SELECT COALESCE(c1)FROM t1 ORDER BY 1;
|
||||
COALESCE(c1)
|
||||
|
||||
DROP TABLE t1;
|
||||
set @@sql_mode=default;
|
||||
CREATE TABLE t1(a YEAR);
|
||||
SELECT 1 FROM t1 WHERE a=1 AND CASE 1 WHEN a THEN 1 ELSE 1 END;
|
||||
1
|
||||
|
|
|
@ -174,6 +174,18 @@ drop table t1, t2;
|
|||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
--echo #
|
||||
--echo # Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE
|
||||
--echo # (SIG 6 -STRINGS/CTYPE-UTF8.C:5151)
|
||||
--echo #
|
||||
|
||||
set @@sql_mode='';
|
||||
CREATE TABLE t1(c1 SET('','')CHARACTER SET ucs2);
|
||||
INSERT INTO t1 VALUES(990101.102);
|
||||
SELECT COALESCE(c1)FROM t1 ORDER BY 1;
|
||||
DROP TABLE t1;
|
||||
set @@sql_mode=default;
|
||||
|
||||
#
|
||||
# lp:1001510
|
||||
# Bug #11764313 57135: CRASH IN ITEM_FUNC_CASE::FIND_ITEM WITH CASE WHEN
|
||||
|
|
14
sql/field.cc
14
sql/field.cc
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
Copyright (c) 2000, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2013, Monty Program Ab
|
||||
Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2008, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -7947,13 +7947,13 @@ String *Field_set::val_str(String *val_buffer,
|
|||
ulonglong tmp=(ulonglong) Field_enum::val_int();
|
||||
uint bitnr=0;
|
||||
|
||||
/*
|
||||
Some callers expect *val_buffer to contain the result,
|
||||
so we assign to it, rather than doing 'return &empty_set_string.
|
||||
*/
|
||||
*val_buffer= empty_set_string;
|
||||
if (tmp == 0)
|
||||
{
|
||||
/*
|
||||
Some callers expect *val_buffer to contain the result,
|
||||
so we assign to it, rather than doing 'return &empty_set_string.
|
||||
*/
|
||||
*val_buffer= empty_set_string;
|
||||
return val_buffer;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
/*
|
||||
Copyright (c) 2005, 2013, Oracle and/or its affiliates.
|
||||
Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1747,7 +1748,7 @@ int ha_partition::change_partitions(HA_CREATE_INFO *create_info,
|
|||
cleanup_new_partition(part_count);
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
DBUG_PRINT("info", ("Add partition %s", part_name_buff));
|
||||
if ((error= prepare_new_partition(table, create_info,
|
||||
new_file_array[i],
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef SQL_ITEM_INCLUDED
|
||||
#define SQL_ITEM_INCLUDED
|
||||
|
||||
/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2016, MariaDB
|
||||
/* Copyright (c) 2000, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
|
@ -2341,7 +2341,6 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type)
|
|||
thd->enable_slow_log= opt_log_slow_slave_statements;
|
||||
thd->variables.log_slow_filter= global_system_variables.log_slow_filter;
|
||||
set_slave_thread_options(thd);
|
||||
thd->client_capabilities = CLIENT_LOCAL_FILES;
|
||||
mysql_mutex_lock(&LOCK_thread_count);
|
||||
thd->thread_id= thd->variables.pseudo_thread_id= thread_id++;
|
||||
mysql_mutex_unlock(&LOCK_thread_count);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Copyright (c) 2005, 2014, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2014, SkySQL Ab.
|
||||
/* Copyright (c) 2005, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2009, 2017, SkySQL Ab.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -8164,6 +8164,7 @@ int create_partition_name(char *out, size_t outlen, const char *in1,
|
|||
}
|
||||
else
|
||||
transl_part= in2;
|
||||
|
||||
if (name_variant == NORMAL_PART_NAME)
|
||||
end= strxnmov(out, outlen-1, in1, "#P#", transl_part, NullS);
|
||||
else if (name_variant == TEMP_PART_NAME)
|
||||
|
@ -8178,25 +8179,19 @@ int create_partition_name(char *out, size_t outlen, const char *in1,
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
Create subpartition name. This method is used to calculate the
|
||||
subpartition name, service routine to the del_ren_cre_table method.
|
||||
The output buffer size should be FN_REFLEN + 1(terminating '\0').
|
||||
|
||||
/*
|
||||
Create subpartition name
|
||||
@param [out] out Created partition name string
|
||||
@param in1 First part
|
||||
@param in2 Second part
|
||||
@param in3 Third part
|
||||
@param name_variant Normal, temporary or renamed partition name
|
||||
|
||||
SYNOPSIS
|
||||
create_subpartition_name()
|
||||
out:out The buffer for the created partition name string
|
||||
must be *at least* of FN_REFLEN+1 bytes
|
||||
in1 First part
|
||||
in2 Second part
|
||||
in3 Third part
|
||||
name_variant Normal, temporary or renamed partition name
|
||||
|
||||
RETURN VALUE
|
||||
0 if ok, error if name too long
|
||||
|
||||
DESCRIPTION
|
||||
This method is used to calculate the subpartition name, service routine to
|
||||
the del_ren_cre_table method.
|
||||
@retval true Error.
|
||||
@retval false Success.
|
||||
*/
|
||||
|
||||
int create_subpartition_name(char *out, size_t outlen,
|
||||
|
@ -8208,6 +8203,7 @@ int create_subpartition_name(char *out, size_t outlen,
|
|||
|
||||
tablename_to_filename(in2, transl_part_name, FN_REFLEN);
|
||||
tablename_to_filename(in3, transl_subpart_name, FN_REFLEN);
|
||||
|
||||
if (name_variant == NORMAL_PART_NAME)
|
||||
end= strxnmov(out, outlen-1, in1, "#P#", transl_part_name,
|
||||
"#SP#", transl_subpart_name, NullS);
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#ifndef SQL_PARTITION_INCLUDED
|
||||
#define SQL_PARTITION_INCLUDED
|
||||
|
||||
/* Copyright (c) 2006, 2013, Oracle and/or its affiliates.
|
||||
/* Copyright (c) 2006, 2017, Oracle and/or its affiliates.
|
||||
Copyright (c) 2011, 2017, MariaDB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
|
Loading…
Add table
Reference in a new issue