]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix crash caused by unloading or reloading of res_http_post
authorMatthew Jordan <mjordan@digium.com>
Tue, 10 Apr 2012 19:57:06 +0000 (19:57 +0000)
committerMatthew Jordan <mjordan@digium.com>
Tue, 10 Apr 2012 19:57:06 +0000 (19:57 +0000)
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.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@361803 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/http.c

index 88e36c7a1f1791a6c27015e799cecc955f60e645..9fb00721f63d9b4a634fd73ada0937e5ead952ef 100644 (file)
@@ -582,12 +582,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;