]> git.ipfire.org Git - thirdparty/vectorscan.git/commitdiff
Do not free stream unless hs_close_stream returns success.
authorChang, Harry <harry.chang@intel.com>
Thu, 20 Jun 2019 00:59:18 +0000 (08:59 +0800)
committerChang, Harry <harry.chang@intel.com>
Tue, 13 Aug 2019 06:50:45 +0000 (14:50 +0800)
(by unit-hyperscan HyperscanArgChecks.CloseStreamNoScratch)

src/runtime.c

index 078c88218cb85a45a0fd78aee9ac2e70c86f90f8..ed1eaf53c12d23ead640328b449f377bcb1068a9 100644 (file)
@@ -1006,17 +1006,14 @@ hs_error_t HS_CDECL hs_close_stream(hs_stream_t *id, hs_scratch_t *scratch,
 
     if (onEvent) {
         if (!scratch || !validScratch(id->rose, scratch)) {
-            hs_stream_free(id);
             return HS_INVALID;
         }
         if (unlikely(markScratchInUse(scratch))) {
-            hs_stream_free(id);
             return HS_SCRATCH_IN_USE;
         }
         report_eod_matches(id, scratch, onEvent, context);
         if (unlikely(internal_matching_error(scratch))) {
             unmarkScratchInUse(scratch);
-            hs_stream_free(id);
             return HS_UNKNOWN_ERROR;
         }
         unmarkScratchInUse(scratch);