Module: kamailio Branch: 4.2 Commit: e3197e00458bae2556d38385a45c6132a0393f7a URL: https://github.com/kamailio/kamailio/commit/e3197e00458bae2556d38385a45c6132...
Author: Stefan Mititelu stefan.mititelu@1and1.ro Committer: Stefan Mititelu stefan.mititelu@1and1.ro Date: 2016-01-07T11:49:25+02:00
debugger: fix issue #463
Don't shm_malloc() while the lock is taken.
(cherry picked from commit 3668618369a8a1db8cb3410c0a7f50ce74150cd2)
---
Modified: modules/debugger/debugger_api.c
---
Diff: https://github.com/kamailio/kamailio/commit/e3197e00458bae2556d38385a45c6132... Patch: https://github.com/kamailio/kamailio/commit/e3197e00458bae2556d38385a45c6132...
---
diff --git a/modules/debugger/debugger_api.c b/modules/debugger/debugger_api.c index 0f5f65d..19d13c1 100644 --- a/modules/debugger/debugger_api.c +++ b/modules/debugger/debugger_api.c @@ -1178,15 +1178,14 @@ int dbg_set_mod_debug_level(char *mname, int mnlen, int *mlevel) itp = it; it = it->next; } + lock_release(&_dbg_mod_table[idx].lock); /* not found - add */ if(mlevel==NULL) { - lock_release(&_dbg_mod_table[idx].lock); return 0; } itn = (dbg_mod_level_t*)shm_malloc(sizeof(dbg_mod_level_t) + (mnlen+1)*sizeof(char)); if(itn==NULL) { LM_ERR("no more shm\n"); - lock_release(&_dbg_mod_table[idx].lock); return -1; } memset(itn, 0, sizeof(dbg_mod_level_t) + (mnlen+1)*sizeof(char)); @@ -1197,6 +1196,7 @@ int dbg_set_mod_debug_level(char *mname, int mnlen, int *mlevel) strncpy(itn->name.s, mname, mnlen); itn->name.s[itn->name.len] = '\0';
+ lock_get(&_dbg_mod_table[idx].lock); if(itp==NULL) { itn->next = _dbg_mod_table[idx].first; _dbg_mod_table[idx].first = itn;