Commit 61f73d40 authored by Nirbhay Choubey's avatar Nirbhay Choubey

MDEV-7397: SIGSEGV on inserting into a key-less table

When wsrep is enabled, an md5 hash of the entire row is calculated
for tables with no PK. It, however segfaulted as the md5 context
object was not properly constructed.

Fixed by ensuring that the YaSSL's context object gets constructed
explicitly at the specified pre-allocated location (placement)
before its used.

Added a test case.
parent dc92032f
...@@ -27,4 +27,21 @@ c1 ...@@ -27,4 +27,21 @@ c1
4 4
5 5
DROP TABLE t1; DROP TABLE t1;
#
# MDEV-7397: SIGSEGV on inserting into a key-less table
#
# On node_1
USE test;
CREATE TABLE t1(c1 INT) ENGINE=INNODB;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1;
c1
1
# On node_2
SELECT * FROM test.t1;
c1
1
DROP TABLE t1;
# End of test # End of test
...@@ -22,5 +22,27 @@ SELECT * FROM test.t1; ...@@ -22,5 +22,27 @@ SELECT * FROM test.t1;
# Cleanup # Cleanup
DROP TABLE t1; DROP TABLE t1;
--echo #
--echo # MDEV-7397: SIGSEGV on inserting into a key-less table
--echo #
--echo
--echo # On node_1
--connection node_1
USE test;
CREATE TABLE t1(c1 INT) ENGINE=INNODB;
INSERT INTO t1 VALUES (1);
SELECT * FROM t1;
--echo
--echo # On node_2
--connection node_2
SELECT * FROM test.t1;
--let $galera_diff_statement = SELECT * FROM t1
--source include/galera_diff.inc
# Cleanup
DROP TABLE t1;
--source include/galera_end.inc --source include/galera_end.inc
--echo # End of test --echo # End of test
...@@ -34,6 +34,7 @@ typedef TaoCrypt::MD5 MD5_CTX; ...@@ -34,6 +34,7 @@ typedef TaoCrypt::MD5 MD5_CTX;
static void md5_init(MD5_CTX *context) static void md5_init(MD5_CTX *context)
{ {
context= new(context) MD5_CTX;
context->Init(); context->Init();
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment