]> granicus.if.org Git - onig/commitdiff
add calling of some free functions in case of error
authorK.Kosako <kkosako0@gmail.com>
Sun, 7 Jul 2019 01:35:35 +0000 (10:35 +0900)
committerK.Kosako <kkosako0@gmail.com>
Sun, 7 Jul 2019 01:35:35 +0000 (10:35 +0900)
sample/bug_fix.c
sample/crnl.c
sample/encode.c
sample/listcap.c
sample/names.c
sample/posix.c
sample/scan.c
sample/simple.c
sample/sql.c
sample/syntax.c
sample/user_property.c

index d0039a885f09d80a2471f45ddce9ca30f6cca1eb..1532d1d8dafc4ad836c1cc9cbc2b667bc4b9cd36 100644 (file)
@@ -36,6 +36,7 @@ search(regex_t* reg, unsigned char* str, unsigned char* end)
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
     fprintf(stderr, "  (%s)\n", ONIGENC_NAME(onig_get_encoding(reg)));
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
     return -1;
   }
 
@@ -53,8 +54,6 @@ exec(OnigEncoding enc, OnigOptionType options, char* apattern, char* astr)
   UChar* pattern = (UChar* )apattern;
   UChar* str     = (UChar* )astr;
 
-  onig_initialize(&enc, 1);
-
   r = onig_new(&reg, pattern,
                pattern + onigenc_str_bytelen_null(enc, pattern),
                options, enc, ONIG_SYNTAX_DEFAULT, &einfo);
@@ -69,7 +68,6 @@ exec(OnigEncoding enc, OnigOptionType options, char* apattern, char* astr)
   r = search(reg, str, end);
 
   onig_free(reg);
-  onig_end();
   return 0;
 }
 
@@ -77,6 +75,11 @@ exec(OnigEncoding enc, OnigOptionType options, char* apattern, char* astr)
 
 extern int main(int argc, char* argv[])
 {
+  OnigEncoding use_encs[1];
+
+  use_encs[0] = ONIG_ENCODING_UTF8;
+  onig_initialize(use_encs, 1);
+
   /* fix ignore case in look-behind
      commit: 3340ec2cc5627172665303fe248c9793354d2251 */
   exec(ONIG_ENCODING_UTF8, ONIG_OPTION_IGNORECASE,
@@ -87,5 +90,6 @@ extern int main(int argc, char* argv[])
   exec(ONIG_ENCODING_UTF8, ONIG_OPTION_FIND_LONGEST,
        "a*", "aa aaa aaaa aaaaa "); /* match 12-17 */
 
+  onig_end();
   return 0;
 }
index 3ad12102e674d9928980fd45742c0e6a1d8a6af3..bfa563eb733c778a5f7d67a5009f6c220777d595 100644 (file)
@@ -65,6 +65,8 @@ x(int no, char* pattern_arg, char* str_arg,
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str(s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
     return -1;
   }
 
index 9e1a2c08e12864934509e74970b8d12c649c5ccf..c5d4771b3839932fc2aaf0962e8761902d1b1b71 100644 (file)
@@ -34,6 +34,7 @@ search(regex_t* reg, unsigned char* str, unsigned char* end)
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
     fprintf(stderr, "  (%s)\n", ONIGENC_NAME(onig_get_encoding(reg)));
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
     return -1;
   }
 
index e0fe23a564880903c820e8df2a5708904e448dab..a73f7d46541c1b238f71b2e8c34b9adceca2324d 100644 (file)
@@ -69,6 +69,8 @@ extern int ex(unsigned char* str, unsigned char* pattern,
   else { /* error */
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
     return -1;
   }
 
index a838056729e8906c991bf732ff64066fdc682c3b..9b1eb24aa92af8a54b2521e7464d8c0426cc74f9 100644 (file)
@@ -65,6 +65,9 @@ extern int main(int argc, char* argv[])
   else { /* error */
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
+    onig_end();
     return -1;
   }
 
index 35ccb68d5b59ad6ccf50101adeac4b67dbbf7525..c5559362eaebbdd881a0bb8a121372b105885452 100644 (file)
@@ -49,6 +49,7 @@ extern int main(int argc, char* argv[])
     regerror(r, &reg, buf, sizeof(buf));
     fprintf(stderr, "ERROR: %s\n", buf);
     regfree(&reg);
+    onig_end();
     return -1;
   }
   x(&reg, pattern, (UChar* )"aaabbbbd");
@@ -60,6 +61,7 @@ extern int main(int argc, char* argv[])
     regerror(r, &reg, buf, sizeof(buf));
     fprintf(stderr, "ERROR: %s\n", buf);
     regfree(&reg);
+    onig_end();
     return -1;
   }
   x(&reg, pattern, (UChar* )"a+b{2,7}d?|uuu");
@@ -71,6 +73,7 @@ extern int main(int argc, char* argv[])
     regerror(r, &reg, buf, sizeof(buf));
     fprintf(stderr, "ERROR: %s\n", buf);
     regfree(&reg);
+    onig_end();
     return -1;
   }
   x(&reg, pattern, (UChar* )"aaaabbbbbbd");
@@ -83,6 +86,7 @@ extern int main(int argc, char* argv[])
     regerror(r, &reg, buf, sizeof(buf));
     fprintf(stderr, "ERROR: %s\n", buf);
     regfree(&reg);
+    onig_end();
     return -1;
   }
   x(&reg, pattern, (UChar* )"aaabbbbd)");
@@ -93,6 +97,7 @@ extern int main(int argc, char* argv[])
     regerror(r, &reg, buf, sizeof(buf));
     fprintf(stderr, "ERROR: %s\n", buf);
     regfree(&reg);
+    onig_end();
     return -1;
   }
   x(&reg, pattern, (UChar* )"a\nb\n");
index ad5ae7422246e9ff4f228604508d353e997342c0..4039e46dbba9427a9f4c940558d385ecaf8bb336 100644 (file)
@@ -36,6 +36,7 @@ scan(regex_t* reg, unsigned char* str, unsigned char* end)
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((OnigUChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
     return -1;
   }
 
@@ -63,6 +64,7 @@ exec(OnigEncoding enc, OnigOptionType options, char* apattern, char* astr)
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((OnigUChar* )s, r, &einfo);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_end();
     return -1;
   }
 
index 95110b888e1a222fe5c2afe96e21426f969943de..5a14042c15279bae70c8e7d3f412c63928b623c8 100644 (file)
@@ -49,6 +49,9 @@ extern int main(int argc, char* argv[])
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
+    onig_end();
     return -1;
   }
 
index 8e95f70be42aac79fc21710ecc1d99c69203782e..1602ac921a528745234484d9603432f2fc568107 100644 (file)
@@ -42,6 +42,7 @@ extern int main(int argc, char* argv[])
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r, &einfo);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_end();
     return -1;
   }
 
@@ -66,6 +67,9 @@ extern int main(int argc, char* argv[])
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
+    onig_end();
     return -1;
   }
 
index e2920798d90ff5be03b1fa07f872b6f16b8c693a..e03460847c3aba18157fbfa619d9a1dfda97df8b 100644 (file)
@@ -45,6 +45,8 @@ extern int exec(OnigSyntaxType* syntax, char* apattern, char* astr)
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
     return -1;
   }
 
index 8b2abd24274291571627514dfd877d340270bca5..d52adc06b900107ebd9049f91fed758065c670bc 100644 (file)
@@ -40,6 +40,7 @@ main(int argc, char* argv[])
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_end();
     return -1;
   }
 
@@ -52,6 +53,7 @@ main(int argc, char* argv[])
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r, &einfo);
     fprintf(stderr, "onig_new: ERROR: %s\n", s);
+    onig_end();
     return -1;
   }
 
@@ -76,6 +78,9 @@ main(int argc, char* argv[])
     char s[ONIG_MAX_ERROR_MESSAGE_LEN];
     onig_error_code_to_str((UChar* )s, r);
     fprintf(stderr, "ERROR: %s\n", s);
+    onig_region_free(region, 1 /* 1:free self, 0:free contents only */);
+    onig_free(reg);
+    onig_end();
     return -1;
   }