[Groonga-commit] groonga/groonga [master] updated to deny 0-length keys.

Back to archive index

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;




Groonga-commit メーリングリストの案内
Back to archive index