HorimotoYasuhiro
null+****@clear*****
Wed Jun 21 19:05:08 JST 2017
HorimotoYasuhiro 2017-06-21 19:05:08 +0900 (Wed, 21 Jun 2017) New Revision: 4a318cd3d8e0bac48f165d2ff8063a8d47b26751 https://github.com/groonga/groonga/commit/4a318cd3d8e0bac48f165d2ff8063a8d47b26751 Merged 9a9e60c: Merge pull request #716 from komainu8/feature/add_check_return_value_of_grn_ctx_at Message: Add null check of grn_ctx_at()'s return value in geo.c Modified files: lib/geo.c Modified: lib/geo.c (+15 -0) =================================================================== --- lib/geo.c 2017-06-16 16:40:47 +0900 (ad61603) +++ lib/geo.c 2017-06-21 19:05:08 +0900 (d2582e2) @@ -710,6 +710,11 @@ grn_geo_table_sort(grn_ctx *ctx, grn_obj *table, int offset, int limit, if ((index = find_geo_sort_index(ctx, column))) { grn_id tid; grn_pat *pat = (grn_pat *)grn_ctx_at(ctx, index->header.domain); + if (!pat) { + ERR(GRN_INVALID_ARGUMENT, "grn_ctx_at(): unknown grn_id" + "index->header.domain:%d", index->header.domain); + GRN_API_RETURN(i); + } grn_id domain = pat->obj.header.domain; grn_pat_cursor *pc = grn_pat_cursor_open(ctx, pat, NULL, 0, GRN_BULK_HEAD(geo_point), @@ -871,6 +876,11 @@ grn_geo_select_in_circle(grn_ctx *ctx, grn_obj *index, grn_geo_point *center, on_circle; grn_geo_distance_raw_func distance_raw_func; pat = grn_ctx_at(ctx, index->header.domain); + if (!pat) { + ERR(GRN_INVALID_ARGUMENT, "grn_ctx_at(): unknown grn_id" + "index->header.domain:%d", index->header.domain); + goto exit; + } domain = pat->header.domain; if (domain != GRN_DB_TOKYO_GEO_POINT && domain != GRN_DB_WGS84_GEO_POINT) { char name[GRN_TABLE_MAX_KEY_SIZE]; @@ -1043,6 +1053,11 @@ in_rectangle_data_fill(grn_ctx *ctx, grn_obj *index, const char *domain_name; data->pat = grn_ctx_at(ctx, index->header.domain); + if(!data->pat) { + ERR(GRN_INVALID_ARGUMENT, "grn_ctx_at(): unknown grn_id" + "index->header.domain:%d", index->header.domain); + return; + } domain = data->pat->header.domain; if (domain != GRN_DB_TOKYO_GEO_POINT && domain != GRN_DB_WGS84_GEO_POINT) { char name[GRN_TABLE_MAX_KEY_SIZE]; -------------- next part -------------- HTML����������������������������... 下載