Kouhei Sutou
null+****@clear*****
Wed May 11 10:35:03 JST 2016
Kouhei Sutou 2016-05-11 10:35:03 +0900 (Wed, 11 May 2016) New Revision: e056558fed23805267025371dd1288a3e107aeeb https://github.com/groonga/groonga/commit/e056558fed23805267025371dd1288a3e107aeeb Message: Add explicit cast Because size_t may be less than uint64_t. Modified files: lib/alloc.c Modified: lib/alloc.c (+6 -2) =================================================================== --- lib/alloc.c 2016-05-11 10:31:08 +0900 (bc5264e) +++ lib/alloc.c 2016-05-11 10:35:03 +0900 (5d77c19) @@ -378,6 +378,7 @@ grn_ctx_alloc(grn_ctx *ctx, size_t size, int flags, size = ((size + ALIGN_MASK) & ~ALIGN_MASK) + ALIGN_SIZE; if (size > GRN_CTX_SEGMENT_SIZE) { uint64_t npages = (size + (grn_pagesize - 1)) / grn_pagesize; + size_t aligned_size; if (npages >= (1LL<<32)) { MERR("too long request size=%" GRN_FMT_SIZE, size); goto exit; @@ -389,7 +390,8 @@ grn_ctx_alloc(grn_ctx *ctx, size_t size, int flags, } if (!mi->map) { break; } } - if (!grn_io_anon_map(ctx, mi, npages * grn_pagesize)) { goto exit; } + aligned_size = grn_pagesize * ((size_t)npages); + if (!grn_io_anon_map(ctx, mi, aligned_size)) { goto exit; } /* GRN_LOG(ctx, GRN_LOG_NOTICE, "map i=%d (%d)", i, npages * grn_pagesize); */ mi->nref = (uint32_t) npages; mi->count = GRN_CTX_SEGMENT_VLEN; @@ -559,6 +561,7 @@ grn_ctx_alloc_lifo(grn_ctx *ctx, size_t size, grn_io_mapinfo *mi = &ctx->impl->segs[i]; if (size > GRN_CTX_SEGMENT_SIZE) { uint64_t npages = (size + (grn_pagesize - 1)) / grn_pagesize; + size_t aligned_size; if (npages >= (1LL<<32)) { MERR("too long request size=%" GRN_FMT_SIZE, size); return NULL; @@ -571,7 +574,8 @@ grn_ctx_alloc_lifo(grn_ctx *ctx, size_t size, mi++; if (!mi->map) { break; } } - if (!grn_io_anon_map(ctx, mi, npages * grn_pagesize)) { return NULL; } + aligned_size = grn_pagesize * ((size_t)npages); + if (!grn_io_anon_map(ctx, mi, aligned_size)) { return NULL; } mi->nref = (uint32_t) npages; mi->count = GRN_CTX_SEGMENT_VLEN|GRN_CTX_SEGMENT_LIFO; ctx->impl->lifoseg = i; -------------- next part -------------- HTML����������������������������...Download