Module: kamailio Branch: master Commit: 22aa9043f179f4de8e90fc5946a7afb28060b6f6 URL: https://github.com/kamailio/kamailio/commit/22aa9043f179f4de8e90fc5946a7afb2...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2017-07-04T12:17:36+02:00
xcap_server: reset server_name variable after free
- avoid re-use in the loop
---
Modified: src/modules/xcap_server/xcap_server.c
---
Diff: https://github.com/kamailio/kamailio/commit/22aa9043f179f4de8e90fc5946a7afb2... Patch: https://github.com/kamailio/kamailio/commit/22aa9043f179f4de8e90fc5946a7afb2...
---
diff --git a/src/modules/xcap_server/xcap_server.c b/src/modules/xcap_server/xcap_server.c index 02b713a745..86f7816dd7 100644 --- a/src/modules/xcap_server/xcap_server.c +++ b/src/modules/xcap_server/xcap_server.c @@ -893,7 +893,7 @@ static int xcaps_get_directory(struct sip_msg *msg, str *user, str *domain, str qvals[n_qcols].nul = 0; qvals[n_qcols].val.str_val = *user; n_qcols++; - + qcols[n_qcols] = &str_domain_col; qvals[n_qcols].type = DB1_STR; qvals[n_qcols].nul = 0; @@ -904,7 +904,7 @@ static int xcaps_get_directory(struct sip_msg *msg, str *user, str *domain, str rcols[doc_uri_col = n_rcols++] = &str_doc_uri_col; rcols[etag_col = n_rcols++] = &str_etag_col;
- if (xcaps_dbf.use_table(xcaps_db, &xcaps_db_table) < 0) + if (xcaps_dbf.use_table(xcaps_db, &xcaps_db_table) < 0) { LM_ERR("in use_table-[table]= %.*s\n", xcaps_db_table.len, xcaps_db_table.s); @@ -1015,7 +1015,7 @@ static int xcaps_get_directory(struct sip_msg *msg, str *user, str *domain, str { directory->len += snprintf(directory->s + directory->len, xcaps_buf.len - directory->len, - "%.*s", server_name.len, server_name.s); + "%.*s", server_name.len, server_name.s); } else { @@ -1023,8 +1023,10 @@ static int xcaps_get_directory(struct sip_msg *msg, str *user, str *domain, str server_name.len = ip_addr2sbuf(&msg->rcv.dst_ip, server_name.s, IP6_MAX_STR_SIZE); directory->len += snprintf(directory->s + directory->len, xcaps_buf.len - directory->len, - "%.*s:%d", server_name.len, server_name.s, msg->rcv.dst_port); + "%.*s:%d", server_name.len, server_name.s, msg->rcv.dst_port); pkg_free(server_name.s); + server_name.s = 0; + server_name.len = 0; } }