[Groonga-commit] groonga/groonga at b4537a2 [master] ii: free memory on failure

Back to archive index

Susumu Yata null+****@clear*****
Mon Feb 22 15:50:41 JST 2016


Susumu Yata	2016-02-22 15:50:41 +0900 (Mon, 22 Feb 2016)

  New Revision: b4537a2a83f79ada9588fe2eccf40012a487786e
  https://github.com/groonga/groonga/commit/b4537a2a83f79ada9588fe2eccf40012a487786e

  Message:
    ii: free memory on failure

  Modified files:
    lib/ii.c

  Modified: lib/ii.c (+4 -2)
===================================================================
--- lib/ii.c    2016-02-22 15:43:46 +0900 (c31ea31)
+++ lib/ii.c    2016-02-22 15:50:41 +0900 (6094edc)
@@ -2888,6 +2888,7 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
             rc = chunk_merge(ctx, ii, sb, bt, &cinfo[i], crid, dv,
                              &nextb, &sbp, &bid, &balance);
             if (rc) {
+              if (cinfo) { GRN_FREE(cinfo); }
               datavec_fin(ctx, dv);
               datavec_fin(ctx, rdv);
               return rc;
@@ -2914,6 +2915,7 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
           snp = rdv[j].data;
         }
         if ((rc = datavec_reset(ctx, dv, ii->n_elements, sdf + S_SEGMENT, size))) {
+          if (cinfo) { GRN_FREE(cinfo); }
           datavec_fin(ctx, dv);
           datavec_fin(ctx, rdv);
           return rc;
@@ -2931,7 +2933,7 @@ buffer_merge(grn_ctx *ctx, grn_ii *ii, uint32_t seg, grn_hash *h,
     GETNEXTC();
     MERGE_BC(1);
     if (rc) {
-      // FIXME: cinfo may not be freed.
+      if (cinfo) { GRN_FREE(cinfo); }
       datavec_fin(ctx, dv);
       datavec_fin(ctx, rdv);
       return rc;
@@ -7861,7 +7863,7 @@ grn_ii_buffer_flush(grn_ctx *ctx, grn_ii_buffer *ii_buffer)
       ERR(GRN_INPUT_OUTPUT_ERROR,
           "write returned %" GRN_FMT_LLD " != %" GRN_FMT_LLU,
           (long long int)r, (unsigned long long int)encsize);
-      // FIXME: outbuf may not be freed.
+      GRN_FREE(outbuf);
       return;
     }
     ii_buffer->filepos += r;
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index