summaryrefslogtreecommitdiff
path: root/main/http.c
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2012-04-10 19:58:04 +0000
committerMatthew Jordan <mjordan@digium.com>2012-04-10 19:58:04 +0000
commit3d7b9e7fb152c0a439f4c908efe2a2d95f3a946a (patch)
tree250ffec0fac7e2b3782772957d987c9a86ce6a09 /main/http.c
parent38c0a624137aa2bd8b040496869480683452c1d5 (diff)
Fix crash caused by unloading or reloading of res_http_post
When unlinking itself from the registered HTTP URIs, res_http_post could inadvertently free all URIs registered with the HTTP server. This patch modifies the unregister method to only free the URI that is actually being unregistered, as opposed to all of them. ........ Merged revisions 361803 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 361804 from http://svn.asterisk.org/svn/asterisk/branches/10 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@361805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/http.c')
-rw-r--r--main/http.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/main/http.c b/main/http.c
index c7e3ceb15..5bbeca33e 100644
--- a/main/http.c
+++ b/main/http.c
@@ -581,12 +581,12 @@ void ast_http_uri_unlink_all_with_key(const char *key)
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&uris, urih, entry) {
if (!strcmp(urih->key, key)) {
AST_RWLIST_REMOVE_CURRENT(entry);
- }
- if (urih->dmallocd) {
- ast_free(urih->data);
- }
- if (urih->mallocd) {
- ast_free(urih);
+ if (urih->dmallocd) {
+ ast_free(urih->data);
+ }
+ if (urih->mallocd) {
+ ast_free(urih);
+ }
}
}
AST_RWLIST_TRAVERSE_SAFE_END;