浏览代码

msilo: safety check for freeing tmp_extra_headers

- it can be a static empty buffer
- reported by Stoyan Mihaylov
Daniel-Constantin Mierla 12 年之前
父节点
当前提交
23b84739a7
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      modules/msilo/msilo.c

+ 4 - 2
modules/msilo/msilo.c

@@ -1134,13 +1134,15 @@ static int m_dump(struct sip_msg* msg, str* owner_s)
 				   tmp_extra_hdrs /*extra_hdrs*/) < 0)
 		{
 			LM_ERR("headers building failed [%d]\n", mid);
-			pkg_free(tmp_extra_hdrs.s);
+			if(tmp_extra_hdrs.len>0)
+				pkg_free(tmp_extra_hdrs.s);
 			if (msilo_dbf.free_result(db_con, db_res) < 0)
 				LM_ERR("failed to free the query result\n");
 			msg_list_set_flag(ml, mid, MS_MSG_ERRO);
 			goto error;
 		}
-		pkg_free(tmp_extra_hdrs.s);
+		if(tmp_extra_hdrs.len>0)
+			pkg_free(tmp_extra_hdrs.s);
 			
 		LM_DBG("msg [%d-%d] for: %.*s\n", i+1, mid,	pto->uri.len, pto->uri.s);