Module: kamailio
Branch: master
Commit: d89333748662c0e7c72e3579d41fd14ef05c0fee
URL:
https://github.com/kamailio/kamailio/commit/d89333748662c0e7c72e3579d41fd14…
Author: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Committer: Victor Seva <linuxmaniac(a)torreviejawireless.org>
Date: 2024-05-30T16:36:30+02:00
regex: fix pcre2 migration
instead of reserving an array in pkg_mem and later
copy the pointers to shm_mem just use shm_mem in
the first place.
fixes #3812
---
Modified: src/modules/regex/regex_mod.c
---
Diff:
https://github.com/kamailio/kamailio/commit/d89333748662c0e7c72e3579d41fd14…
Patch:
https://github.com/kamailio/kamailio/commit/d89333748662c0e7c72e3579d41fd14…
---
diff --git a/src/modules/regex/regex_mod.c b/src/modules/regex/regex_mod.c
index 292af692136..52ed60b295c 100644
--- a/src/modules/regex/regex_mod.c
+++ b/src/modules/regex/regex_mod.c
@@ -427,7 +427,7 @@ static int load_pcres(int action)
}
/* Temporal pointer of pcres */
- if((pcres_tmp = pkg_malloc(sizeof(pcre2_code *) * num_pcres_tmp)) == 0) {
+ if((pcres_tmp = shm_malloc(sizeof(pcre2_code *) * num_pcres_tmp)) == 0) {
LM_ERR("no more memory for pcres_tmp\n");
goto err;
}
@@ -469,19 +469,10 @@ static int load_pcres(int action)
shm_free(pcres);
}
- if(pcres == NULL) {
- if((pcres = shm_malloc(sizeof(pcre2_code *) * num_pcres_tmp)) == 0) {
- LM_ERR("no more memory for pcres\n");
- goto err;
- }
- memset(pcres, 0, sizeof(pcre2_code *) * num_pcres_tmp);
- }
-
*num_pcres = num_pcres_tmp;
- *pcres = *pcres_tmp;
+ pcres = pcres_tmp;
*pcres_addr = pcres;
- pkg_free(pcres_tmp);
/* Free allocated slots for unused patterns */
for(i = num_pcres_tmp; i < max_groups; i++) {
pkg_free(patterns[i]);