null+****@clear*****
null+****@clear*****
2012年 1月 30日 (月) 19:50:37 JST
Susumu Yata 2012-01-30 19:50:37 +0900 (Mon, 30 Jan 2012) New Revision: c4c8695e7d8742a8a9d35434ac3587a95279dd88 Log: updated to deny 0-length keys. Modified files: lib/dat.cpp Modified: lib/dat.cpp (+9 -3) =================================================================== --- lib/dat.cpp 2012-01-30 09:32:11 +0900 (37d659b) +++ lib/dat.cpp 2012-01-30 19:50:37 +0900 (24f0c5c) @@ -422,7 +422,9 @@ grn_id grn_dat_add(grn_ctx *ctx, grn_dat *dat, const void *key, unsigned int key_size, void **, int *added) { - if (!grn_dat_open_trie_if_needed(ctx, dat)) { + if (!key_size) { + return GRN_ID_NIL; + } else if (!grn_dat_open_trie_if_needed(ctx, dat)) { return GRN_ID_NIL; } @@ -591,7 +593,9 @@ grn_rc grn_dat_update_by_id(grn_ctx *ctx, grn_dat *dat, grn_id src_key_id, const void *dest_key, unsigned int dest_key_size) { - if (!grn_dat_open_trie_if_needed(ctx, dat)) { + if (!dest_key_size) { + return GRN_INVALID_ARGUMENT; + } else if (!grn_dat_open_trie_if_needed(ctx, dat)) { return ctx->rc; } else if (!dat->trie) { return GRN_INVALID_ARGUMENT; @@ -624,7 +628,9 @@ grn_dat_update(grn_ctx *ctx, grn_dat *dat, const void *src_key, unsigned int src_key_size, const void *dest_key, unsigned int dest_key_size) { - if (!grn_dat_open_trie_if_needed(ctx, dat)) { + if (!dest_key_size) { + return GRN_INVALID_ARGUMENT; + } else if (!grn_dat_open_trie_if_needed(ctx, dat)) { return ctx->rc; } else if (!dat->trie) { return GRN_INVALID_ARGUMENT;