[groonga-dev,00144] grn_table_columns()のエラーチェック

Back to archive index

Kouhei Sutou kou****@clear*****
2009年 7月 29日 (水) 14:52:46 JST


須藤です。

名前のないテーブルに対してgrn_table_columns()を呼ぶと落ちて
しまいます。名前が設定されているかどうかもチェックするという
のはどうでしょうか?

diff --git a/lib/db.c b/lib/db.c
index d8808aa..7a8a90e 100644
--- a/lib/db.c
+++ b/lib/db.c
@@ -1779,7 +1779,7 @@ grn_table_columns(grn_ctx *ctx, grn_obj *table, const char *name, unsigned name_
 {
   int n = 0;
   GRN_API_ENTER;
-  if (GRN_OBJ_TABLEP(table)) {
+  if (GRN_OBJ_TABLEP(table) && grn_obj_name(ctx, table, NULL, 0) > 0) {
     grn_obj bulk;
     grn_db *s = (grn_db *)DB_OBJ(table)->db;
     GRN_TEXT_INIT(&bulk, 0);

# エラーメッセージも設定する方がより親切ですが。。。

-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード (http://www.clear-code.com/)




groonga-dev メーリングリストの案内
Back to archive index