Commit 31cffb8a authored by unknown's avatar unknown
Browse files

my_vsnprintf.c, sql_select.cc, sql_delete.cc, field_conv.cc, rt_split.c:

  Fixes for valgrind errors and compatiblity issues by Monty


myisam/rt_split.c:
  Fixes for valgrind errors and compatiblity issues by Monty
sql/field_conv.cc:
  Fixes for valgrind errors and compatiblity issues by Monty
sql/sql_delete.cc:
  Fixes for valgrind errors and compatiblity issues by Monty
sql/sql_select.cc:
  Fixes for valgrind errors and compatiblity issues by Monty
strings/my_vsnprintf.c:
  Fixes for valgrind errors and compatiblity issues by Monty
parent be218f51
Loading
Loading
Loading
Loading
+8 −9
Original line number Diff line number Diff line
@@ -258,16 +258,15 @@ int rtree_split_page(MI_INFO *info, MI_KEYDEF *keyinfo, uchar *page, uchar *key,
  uchar *source_cur, *cur1, *cur2;
  uchar *new_page;
  int err_code= 0;

  uint nod_flag= mi_test_if_nod(page);
  uint full_length= key_length + (nod_flag ? nod_flag : 
                                  info->s->base.rec_reflength);

  int max_keys= (mi_getint(page)-2) / (full_length);

  n_dim = keyinfo->keysegs / 2;
  
  if (!(coord_buf= my_alloca(n_dim * 2 * sizeof(double) * (max_keys + 1 + 4) +
  if (!(coord_buf= (double*) my_alloca(n_dim * 2 * sizeof(double) *
                                       (max_keys + 1 + 4) +
                                       sizeof(SplitStruct) * (max_keys + 1))))
    return -1;

+5 −1
Original line number Diff line number Diff line
@@ -605,6 +605,10 @@ void field_conv(Field *to,Field *from)
         to->type() != FIELD_TYPE_DATE &&
         to->type() != FIELD_TYPE_DATETIME))
    {						// Identical fields
#ifdef HAVE_purify
      /* This may happen if one does 'UPDATE ... SET x=x' */
      if (to->ptr != from->ptr)
#endif
        memcpy(to->ptr,from->ptr,to->pack_length());
      return;
    }
+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
  {
    my_error(ER_VIEW_DELETE_MERGE_VIEW, MYF(0),
	     table_list->view_db.str, table_list->view_name.str);
    DBUG_RETURN(-1);
    DBUG_RETURN(TRUE);
  }
  table->file->info(HA_STATUS_VARIABLE | HA_STATUS_NO_LOCK);
  thd->proc_info="init";
+2 −2
Original line number Diff line number Diff line
@@ -12655,8 +12655,10 @@ static bool setup_sum_funcs(THD *thd, Item_sum **func_ptr)
  Item_sum *func;
  DBUG_ENTER("setup_sum_funcs");
  while ((func= *(func_ptr++)))
  {
    if (func->setup(thd))
      DBUG_RETURN(TRUE);
  }
  DBUG_RETURN(FALSE);
}

@@ -12943,8 +12945,6 @@ bool JOIN::rollup_make_fields(List<Item> &fields_arg, List<Item> &sel_fields,
	*/
	item= item->copy_or_same(thd);
	((Item_sum*) item)->make_unique();
	if (((Item_sum*) item)->setup(thd))
	  return 1;
	*(*func)= (Item_sum*) item;
	(*func)++;
      }
+10 −0
Original line number Diff line number Diff line
@@ -135,6 +135,16 @@ int my_vsnprintf(char *to, size_t n, const char* fmt, va_list ap)
      to+= res_length;
      continue;
    }
    else if (*fmt == 'c')                       /* Character parameter */
    {
      register int larg;
      if (to == end)
        break;
      larg = va_arg(ap, int);
      *to++= (char) larg;
      continue;
    }

    /* We come here on '%%', unknown code or too long parameter */
    if (to == end)
      break;