Commit 07efbe8c authored by unknown's avatar unknown
Browse files

Fix for bug #23782: Stored procedures: crash if variable in procedure

analyse

We have to call fix_fields() for procedure analyse' arguments as they may   
not be
fixed in some circumstances.

(as the crash appears when mysqld starts skipping binlog, a test case
will be added when we can --skip-bin-log in -master.opt)


sql/sql_analyse.cc:
  Fix for bug #23782: Stored procedures: crash if variable in procedure
  analyse
    - call fix_fields() if arguments are not fixed.
parent f27ea1b1
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -87,6 +87,11 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
  else if (param->next)
  {
    // first parameter
    if (!(*param->item)->fixed && (*param->item)->fix_fields(thd, param->item))
    {
      DBUG_PRINT("info", ("fix_fields() for the first parameter failed"));
      goto err;
    }
    if ((*param->item)->type() != Item::INT_ITEM ||
	(*param->item)->val_real() < 0)
    {
@@ -101,6 +106,11 @@ proc_analyse_init(THD *thd, ORDER *param, select_result *result,
      goto err;
    }
    // second parameter
    if (!(*param->item)->fixed && (*param->item)->fix_fields(thd, param->item))
    {
      DBUG_PRINT("info", ("fix_fields() for the second parameter failed"));
      goto err;
    }
    if ((*param->item)->type() != Item::INT_ITEM ||
	(*param->item)->val_real() < 0)
    {