Skip to content

Commit 716e13b

Browse files
committed
MYCPP-311: Fix Seg Fault when passing NULL to mysqlx_set_view_definer
1 parent eaeef69 commit 716e13b

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

xapi/tests/xapi-t.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ TEST_F(xapi, view_ddl_test)
6666
EXPECT_EQ(RESULT_OK, mysqlx_set_view_algorithm(vstmt, VIEW_ALGORITHM_MERGE));
6767
EXPECT_EQ(RESULT_OK, mysqlx_set_view_security(vstmt, VIEW_SECURITY_INVOKER));
6868
EXPECT_EQ(RESULT_OK, mysqlx_set_view_check_option(vstmt, VIEW_CHECK_OPTION_CASCADED));
69+
EXPECT_EQ(RESULT_OK, mysqlx_set_view_definer(vstmt, NULL));
6970
EXPECT_EQ(RESULT_OK, mysqlx_set_view_definer(vstmt, "root"));
7071

7172
// Change parent SELECT STMT, it is not supposed to affect the VIEW STMT in any way

xapi/view.cc

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,15 @@ void View_spec::set_check(int val)
9999

100100
void View_spec::set_definer(const char* val)
101101
{
102-
m_opts.m_definer_set = true;
103-
m_opts.m_definer = val;
102+
if (val)
103+
{
104+
m_opts.m_definer_set = true;
105+
m_opts.m_definer = val;
106+
}
107+
else
108+
{ // If definer = NULL, we will not report it
109+
m_opts.m_definer_set = false;
110+
}
104111
}
105112

106113
void View_spec::set_columns(va_list args)
@@ -138,4 +145,4 @@ void View_spec::View_opts::process(Processor &prc) const
138145

139146
if (m_definer_set)
140147
prc.definer(m_definer);
141-
}
148+
}

0 commit comments

Comments
 (0)