Skip to content

Commit

Permalink
Merge branch 'mysql/5.5' into 5.5
Browse files Browse the repository at this point in the history
  • Loading branch information
vuvova committed Oct 17, 2017
2 parents b036b6b + 1da916c commit df5f25f
Show file tree
Hide file tree
Showing 13 changed files with 84 additions and 44 deletions.
3 changes: 1 addition & 2 deletions client/mysql.cc
Expand Up @@ -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);
Expand Down
8 changes: 8 additions & 0 deletions extra/yassl/README
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions extra/yassl/include/openssl/ssl.h
@@ -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
Expand Down Expand Up @@ -35,7 +35,7 @@
#include "rsa.h"


#define YASSL_VERSION "2.4.2"
#define YASSL_VERSION "2.4.4"


#if defined(__cplusplus)
Expand Down
6 changes: 5 additions & 1 deletion extra/yassl/src/yassl_imp.cpp
@@ -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
Expand Down Expand Up @@ -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_)
Expand Down
14 changes: 9 additions & 5 deletions extra/yassl/src/yassl_int.cpp
@@ -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
Expand Down Expand Up @@ -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);
}
Expand Down Expand Up @@ -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

16 changes: 16 additions & 0 deletions mysql-test/r/case.result
Expand Up @@ -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
Expand Down
12 changes: 12 additions & 0 deletions mysql-test/t/case.test
Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions 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
Expand Down Expand Up @@ -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;
}

Expand Down
5 changes: 3 additions & 2 deletions sql/ha_partition.cc
@@ -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
Expand Down Expand Up @@ -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],
Expand Down
4 changes: 2 additions & 2 deletions sql/item.h
@@ -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
Expand Down
1 change: 0 additions & 1 deletion sql/slave.cc
Expand Up @@ -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);
Expand Down
38 changes: 17 additions & 21 deletions sql/sql_partition.cc
@@ -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
Expand Down Expand Up @@ -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)
Expand All @@ -8178,25 +8179,19 @@ int create_partition_name(char *out, size_t outlen, const char *in1,
return 0;
}


/*
Create subpartition 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.
/**
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').

@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

@retval true Error.
@retval false Success.
*/

int create_subpartition_name(char *out, size_t outlen,
Expand All @@ -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);
Expand Down
3 changes: 2 additions & 1 deletion sql/sql_partition.h
@@ -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
Expand Down

0 comments on commit df5f25f

Please sign in to comment.