Module: kamailio Branch: master Commit: dd0c6fb586a61cb7e2eed1093ccf8f5158761ae3 URL: https://github.com/kamailio/kamailio/commit/dd0c6fb586a61cb7e2eed1093ccf8f51...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2017-07-23T09:42:21+02:00
msilo: reorganized tests to free db_res and build of extra headers
---
Modified: src/modules/msilo/msfuncs.c Modified: src/modules/msilo/msilo.c
---
Diff: https://github.com/kamailio/kamailio/commit/dd0c6fb586a61cb7e2eed1093ccf8f51... Patch: https://github.com/kamailio/kamailio/commit/dd0c6fb586a61cb7e2eed1093ccf8f51...
---
diff --git a/src/modules/msilo/msfuncs.c b/src/modules/msilo/msfuncs.c index 43bc82ce60..5262a81159 100644 --- a/src/modules/msilo/msfuncs.c +++ b/src/modules/msilo/msfuncs.c @@ -211,30 +211,30 @@ int m_build_headers(str *buf, str ctype, str contact, time_t date, str extra) if(date > 0) { lenDate = timetToSipDateStr(date,strDate,48); - strncpy(p, strDate, lenDate); + memcpy(p, strDate, lenDate); p += lenDate; } if(ctype.len > 0) { - strncpy(p, "Content-Type: ", 14); + memcpy(p, "Content-Type: ", 14); p += 14; - strncpy(p, ctype.s, ctype.len); + memcpy(p, ctype.s, ctype.len); p += ctype.len; - strncpy(p, CRLF, CRLF_LEN); + memcpy(p, CRLF, CRLF_LEN); p += CRLF_LEN; } if(contact.len > 0 && ms_add_contact) { - strncpy(p, CONTACT_PREFIX, CONTACT_PREFIX_LEN); + memcpy(p, CONTACT_PREFIX, CONTACT_PREFIX_LEN); p += CONTACT_PREFIX_LEN; - strncpy(p, contact.s, contact.len); + memcpy(p, contact.s, contact.len); p += contact.len; - strncpy(p, CONTACT_SUFFIX, CONTACT_SUFFIX_LEN); + memcpy(p, CONTACT_SUFFIX, CONTACT_SUFFIX_LEN); p += CONTACT_SUFFIX_LEN; } if (extra.len > 0) { - strncpy(p, extra.s, extra.len); + memcpy(p, extra.s, extra.len); p += extra.len; } buf->len = p - buf->s; @@ -263,18 +263,18 @@ int m_build_body(str *body, time_t date, str msg, time_t sdate) { if(sdate!=0) { - strncpy(p, "[Reminder message - ", 20); + memcpy(p, "[Reminder message - ", 20); p += 20; - strncpy(p, ctime(&sdate), 24); + memcpy(p, ctime(&sdate), 24); p += 24;
*p++ = ']'; } else { - strncpy(p, "[Offline message - ", 19); + memcpy(p, "[Offline message - ", 19); p += 19; - strncpy(p, ctime(&date), 24); + memcpy(p, ctime(&date), 24); p += 24;
*p++ = ']'; diff --git a/src/modules/msilo/msilo.c b/src/modules/msilo/msilo.c index d231ae7e6e..f62557ce2a 100644 --- a/src/modules/msilo/msilo.c +++ b/src/modules/msilo/msilo.c @@ -1039,8 +1039,11 @@ static int m_dump(struct sip_msg* msg, str* owner_s) }
if (msilo_dbf.query(db_con,db_keys,db_ops,db_vals,db_cols,db_no_keys, - db_no_cols, ob_key, &db_res) < 0) { + db_no_cols, ob_key, &db_res) < 0 || db_res==NULL) { LM_ERR("failed to query database\n"); + if (db_res!=NULL && msilo_dbf.free_result(db_con, db_res) < 0) { + LM_ERR("failed to free the query result\n"); + } goto error; }
@@ -1071,13 +1074,13 @@ static int m_dump(struct sip_msg* msg, str* owner_s) (time_t)RES_ROWS(db_res)[i].values[5/*inc time*/].val.int_val; if (ms_extra_hdrs != NULL) { - if (fixup_get_svalue(msg, (gparam_p)*ms_extra_hdrs_sp, - &extra_hdrs_str) != 0) { - if (msilo_dbf.free_result(db_con, db_res) < 0) - LM_ERR("failed to free the query result\n"); - LM_ERR("unable to get extra_hdrs value\n"); - goto error; - } + if(fixup_get_svalue(msg, (gparam_p)*ms_extra_hdrs_sp, + &extra_hdrs_str) != 0) { + if(msilo_dbf.free_result(db_con, db_res) < 0) + LM_ERR("failed to free the query result\n"); + LM_ERR("unable to get extra_hdrs value\n"); + goto error; + } } else { extra_hdrs_str.len = 0; } @@ -1153,7 +1156,7 @@ static int m_dump(struct sip_msg* msg, str* owner_s) * Free the result because we don't need it * anymore */ - if ((db_res !=NULL) && msilo_dbf.free_result(db_con, db_res) < 0) + if (msilo_dbf.free_result(db_con, db_res) < 0) LM_ERR("failed to free result of query\n");
return 1;