List:Commits« Previous MessageNext Message »
From:Georgi Kodinov Date:October 27 2008 2:47pm
Subject:bzr commit into mysql-6.0 branch (kgeorge:2892) Bug#32124
View as plain text  
#At file:///home/kgeorge/mysql/bzr/32124-6.0-bugteam/

 2892 Georgi Kodinov	2008-10-27
      Bug #32124: Addendum to the 6.0 fix
      
      There was a "shortcut" in the 6.0 code that relies on having Item::str_value
      filled in after executing Item_func_get_system_var::val_str().
      Fixed by calling ::val_str() and working with the results.
modified:
  sql/set_var.cc

per-file messages:
  sql/set_var.cc
    use the external API (::val_str()) instead of relying on
    side effects.
=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2008-10-08 15:37:32 +0000
+++ b/sql/set_var.cc	2008-10-27 14:47:19 +0000
@@ -2833,15 +2833,26 @@ err:
 static bool sys_update_backupdir(THD *thd, set_var * var)
 {
   char buff[FN_REFLEN];
-  char *res= 0, *old_value=(char *)(var ? var->value->str_value.ptr() : 0);
+  char *res= 0, *old_value= NULL;
   bool result= 0;
-  uint str_length= (var ? var->value->str_value.length() : 0);
+  uint str_length;
+  String str(buff,sizeof(buff), system_charset_info);
 
-  if (!old_value)
+  if (var)
+  {
+    String *strres;
+
+    if (!(strres= var->value->val_str(&str)))
+      goto err;
+    old_value= strres->c_ptr();
+    str_length= strres->length();
+  }
+  else
   {
     old_value= make_default_backupdir(buff);
     str_length= strlen(old_value);
   }
+
   if (!(res= my_strndup(old_value, str_length, MYF(MY_FAE+MY_WME))))
   {
     result= 1;

Thread
bzr commit into mysql-6.0 branch (kgeorge:2892) Bug#32124Georgi Kodinov27 Oct
  • Re: bzr commit into mysql-6.0 branch (kgeorge:2892) Bug#32124Davi Arnaut27 Oct