← Back to team overview

maria-developers team mailing list archive

Re: Rev 4350: MDEV-6985: MariaDB crashes on stored procedure call

 

Hi, Sanja!

On Nov 17, sanja@xxxxxxxxxxxx wrote:
> ------------------------------------------------------------
> revno: 4350
> revision-id: sanja@xxxxxxxxxxxx-20141117132635-gf281ipiomifw1oc
> parent: psergey@xxxxxxxxxxxx-20141113111559-cuhsyfhor141qo6a
> committer: sanja@xxxxxxxxxxxx
> branch nick: work-maria-5.5-MDEV-6985
> timestamp: Mon 2014-11-17 14:26:35 +0100
> message:
>   MDEV-6985: MariaDB crashes on stored procedure call
>   
>   Item_ident fixed to allow double cleanup().

> === modified file 'sql/item.cc'
> --- a/sql/item.cc	2014-10-06 17:53:55 +0000
> +++ b/sql/item.cc	2014-11-17 13:26:35 +0000
> @@ -862,12 +862,20 @@ void Item_ident::cleanup()
>  		       field_name ? field_name : "(null)",
>                         orig_field_name ? orig_field_name : "(null)"));
>  #endif

Before pushing, please remove the above #ifdef, in a separate commit.
thanks!

> +  bool was_fixed= fixed;
>    Item::cleanup();
>    db_name= orig_db_name; 
>    table_name= orig_table_name;
>    field_name= orig_field_name;
>    /* Store if this Item was depended */
> -  can_be_depended= test(depended_from);
> +  if (was_fixed)
> +  {
> +    /*
> +      We can trust that depended_from set correctly only if this item
> +      was fixed
> +    */
> +    can_be_depended= test(depended_from);
> +  }

Are double cleanups generally normal? Why this item is cleaned up twice?

>    DBUG_VOID_RETURN;
>  }


Regards,
Sergei



Follow ups