Kouhei Sutou
null+****@clear*****
Tue Aug 23 20:07:37 JST 2016
Kouhei Sutou 2016-08-23 20:07:37 +0900 (Tue, 23 Aug 2016) New Revision: 4391b91123832d7cfe53281f4951e05cc09415e6 https://github.com/groonga/groonga/commit/4391b91123832d7cfe53281f4951e05cc09415e6 Message: Add error check on using index for resolving accessor for data column Modified files: lib/db.c Modified: lib/db.c (+32 -0) =================================================================== --- lib/db.c 2016-08-23 20:05:25 +0900 (ab7299e) +++ lib/db.c 2016-08-23 20:07:37 +0900 (e6caf88) @@ -3290,6 +3290,38 @@ grn_accessor_resolve_one_data_column(grn_ctx *ctx, grn_accessor *accessor, if (n_index_data == 0) { return GRN_INVALID_ARGUMENT; } + + { + grn_obj *lexicon; + lexicon = grn_ctx_at(ctx, index_datum.index->header.domain); + if (grn_obj_id(ctx, lexicon) != current_res->header.domain) { + char index_name[GRN_TABLE_MAX_KEY_SIZE]; + int index_name_size; + grn_obj *expected; + char expected_name[GRN_TABLE_MAX_KEY_SIZE]; + int expected_name_size; + + index_name_size = grn_obj_name(ctx, + index_datum.index, + index_name, + GRN_TABLE_MAX_KEY_SIZE); + expected = grn_ctx_at(ctx, current_res->header.domain); + expected_name_size = grn_obj_name(ctx, + expected, + expected_name, + GRN_TABLE_MAX_KEY_SIZE); + ERR(GRN_INVALID_ARGUMENT, + "[accessor][resolve][data-column] lexicon mismatch index: " + "<%.*s> " + "expected:<%.*s>", + index_name_size, + index_name, + expected_name_size, + expected_name); + return ctx->rc; + } + } + next_res_domain_id = DB_OBJ(index_datum.index)->range; grn_report_index(ctx, -------------- next part -------------- HTML����������������������������...Download