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;