From 1bd576132d73fdf942fb6dbc1f0e5e5cc45cda67 Mon Sep 17 00:00:00 2001 From: bagyenda <> Date: Mon, 22 May 2006 10:06:22 +0000 Subject: [PATCH] Fixed: double-free in mmsglobalsender --- mbuni/mmsc/mms_resolve.c | 4 ++-- mbuni/mmsc/mmsglobalsender.c | 2 +- mbuni/mmsc/mmsproxy.c | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/mbuni/mmsc/mms_resolve.c b/mbuni/mmsc/mms_resolve.c index e3abe97..b246bc7 100644 --- a/mbuni/mmsc/mms_resolve.c +++ b/mbuni/mmsc/mms_resolve.c @@ -36,13 +36,13 @@ static Octstr *mms_resolve(Octstr * phonenum, void *module_data, void *settings_ int j, m; if (does_prefix_match(settings->local_prefix, phonenum)) { - return settings->hostname; + return settings->hostname ? octstr_duplicate(settings->hostname) : NULL; } else if (proxyrelays && list_len(proxyrelays) > 0) /* Step through proxies. */ for (j = 0, m = list_len(proxyrelays); j < m; j++) { MmsProxyRelay *mp = list_get(proxyrelays, j); if (does_prefix_match(mp->allowed_prefix, phonenum) && !does_prefix_match(mp->denied_prefix, phonenum)) { - return mp->host; + return octstr_duplicate(mp->host); } } diff --git a/mbuni/mmsc/mmsglobalsender.c b/mbuni/mmsc/mmsglobalsender.c index 0fece74..c873e6c 100644 --- a/mbuni/mmsc/mmsglobalsender.c +++ b/mbuni/mmsc/mmsglobalsender.c @@ -251,7 +251,7 @@ static int sendMsg(MmsEnvelope *e) break; } } - octstr_destroy(mmsc); + octstr_destroy(mmsc); } else /* Search VASP list, see what you can find... */ for (j = 0, m = list_len(settings->vasp_list); j < m; j++) if ((vasp = list_get(settings->vasp_list, j)) != NULL && diff --git a/mbuni/mmsc/mmsproxy.c b/mbuni/mmsc/mmsproxy.c index 4da34bd..5cd9231 100644 --- a/mbuni/mmsc/mmsproxy.c +++ b/mbuni/mmsc/mmsproxy.c @@ -407,9 +407,9 @@ void fetchmms_proxy(MmsHTTPClientInfo *h) free_stuff: if (notify_cmd) /* Inform provisioning server */ - notify_prov_server(octstr_get_cstr(settings->prov_notify), - h->base_client_addr ? octstr_get_cstr(h->base_client_addr) : "unknown", - notify_cmd, notify_arg ? notify_arg : ""); + notify_prov_server(octstr_get_cstr(settings->prov_notify), + h->base_client_addr ? octstr_get_cstr(h->base_client_addr) : "unknown", + notify_cmd, notify_arg ? notify_arg : ""); http_destroy_headers(rh);