[Groonga-mysql-commit] mroonga/mroonga [fix-for-visual-studio] mariadb: fix crash

Back to archive index

Kouhei Sutou null+****@clear*****
Thu Oct 4 10:48:52 JST 2012


Kouhei Sutou	2012-03-07 19:33:44 +0900 (Wed, 07 Mar 2012)

  New Revision: a5393e7d7541eaab984351ed438c52af567c8710
  https://github.com/mroonga/mroonga/commit/a5393e7d7541eaab984351ed438c52af567c8710

  Log:
    mariadb: fix crash
    
    refs #1304
    
    Reported by Kazuhiko Shiozaki. Thanks!!!

  Modified files:
    ha_mroonga.cc
    mrn_table.cc

  Modified: ha_mroonga.cc (+4 -2)
===================================================================
--- ha_mroonga.cc    2012-03-07 11:53:30 +0900 (5e4634b)
+++ ha_mroonga.cc    2012-03-07 19:33:44 +0900 (46ccddc)
@@ -2053,8 +2053,10 @@ int ha_mroonga::create_share_for_create() const
   memset(&table_share_for_create, 0, sizeof(TABLE_SHARE));
   init_alloc_root(&mem_root_for_create, 1024, 0);
   analyzed_for_create = TRUE;
-  share_for_create.table_name = table_list->table_name;
-  share_for_create.table_name_length = table_list->table_name_length;
+  if (table_list) {
+    share_for_create.table_name = table_list->table_name;
+    share_for_create.table_name_length = table_list->table_name_length;
+  }
   share_for_create.table_share = &table_share_for_create;
   table_share_for_create.comment = create_info->comment;
   table_share_for_create.connect_string = create_info->connect_string;

  Modified: mrn_table.cc (+5 -3)
===================================================================
--- mrn_table.cc    2012-03-07 11:53:30 +0900 (f74584a)
+++ mrn_table.cc    2012-03-07 19:33:44 +0900 (eb511c2)
@@ -177,7 +177,7 @@ void mrn_get_partition_info(const char *table_name, uint table_name_length,
   if (!part_info)
     DBUG_VOID_RETURN;
 
-  if (!memcmp(table_name + table_name_length - 5, "#TMP#", 5))
+  if (table_name && !memcmp(table_name + table_name_length - 5, "#TMP#", 5))
     tmp_flg = TRUE;
 
   DBUG_PRINT("info", ("mroonga table_name=%s", table_name));
@@ -193,10 +193,11 @@ void mrn_get_partition_info(const char *table_name, uint table_name_length,
           (*part_elem)->partition_name, (*sub_elem)->partition_name,
           NORMAL_PART_NAME);
         DBUG_PRINT("info", ("mroonga tmp_name=%s", tmp_name));
-        if (!memcmp(table_name, tmp_name, table_name_length + 1))
+        if (table_name && !memcmp(table_name, tmp_name, table_name_length + 1))
           DBUG_VOID_RETURN;
         if (
           tmp_flg &&
+          table_name &&
           *(tmp_name + table_name_length - 5) == '\0' &&
           !memcmp(table_name, tmp_name, table_name_length - 5)
         ) {
@@ -210,10 +211,11 @@ void mrn_get_partition_info(const char *table_name, uint table_name_length,
       create_partition_name(tmp_name, table->s->path.str,
         (*part_elem)->partition_name, NORMAL_PART_NAME, TRUE);
       DBUG_PRINT("info", ("mroonga tmp_name=%s", tmp_name));
-      if (!memcmp(table_name, tmp_name, table_name_length + 1))
+      if (table_name && !memcmp(table_name, tmp_name, table_name_length + 1))
         DBUG_VOID_RETURN;
       if (
         tmp_flg &&
+        table_name &&
         *(tmp_name + table_name_length - 5) == '\0' &&
         !memcmp(table_name, tmp_name, table_name_length - 5)
       ) {
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-mysql-commit mailing list
Back to archive index