Module: kamailio Branch: master Commit: d89333748662c0e7c72e3579d41fd14ef05c0fee URL: https://github.com/kamailio/kamailio/commit/d89333748662c0e7c72e3579d41fd14e...
Author: Victor Seva linuxmaniac@torreviejawireless.org Committer: Victor Seva linuxmaniac@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/d89333748662c0e7c72e3579d41fd14e... Patch: https://github.com/kamailio/kamailio/commit/d89333748662c0e7c72e3579d41fd14e...
---
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]);