Compare commits

..

3 Commits

Author SHA1 Message Date
Kevin P. Fleming
fffdfc1912 Convert all release tags to Opsound music-on-hold.
For more details:
http://blogs.digium.com/2009/08/18/asterisk-music-on-hold-changes/



git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.24-netsec@212958 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-18 20:42:51 +00:00
Russell Bryant
c028de3c78 importing files for 1.2.24-netsec release
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.24-netsec@78455 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 19:59:33 +00:00
Russell Bryant
ebf2a11bc2 Creating tag for the release of asterisk-1.2.24-netsec
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.24-netsec@78454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 19:58:24 +00:00
4 changed files with 13 additions and 31 deletions

View File

@@ -1 +1 @@
1.2.25-netsec
1.2.24-netsec

View File

@@ -1,16 +1,3 @@
2007-11-29 Russell Bryant <russell@digium.com>
* Asterisk 1.2.25-netsec released
2007-11-29 21:10 +0000 [r90170] Tilghman Lesher <tlesher@digium.com>
* cdr/cdr_pgsql.c: Properly escape src and dst fields (Fixes
AST-2007-026)
2007-09-13 18:10 +0000 [r82334] Kevin P. Fleming <kpfleming@digium.com>
* LICENSE: clarify the OpenSSL and OpenH323 license exceptions
2007-08-07 Russell Bryant <russell@digium.com>
* Asterisk 1.2.24-netsec released

View File

@@ -32,7 +32,7 @@ GPL'd products (although if you've written a module for Asterisk we
would strongly encourage you to make the same exception that we do).
Specific permission is also granted to link Asterisk with OpenSSL and
OpenH323 and distribute the resulting binary files.
OpenH323.
In addition, Asterisk implements two management/control protocols: the
Asterisk Manager Interface (AMI) and the Asterisk Gateway Interface

View File

@@ -72,7 +72,6 @@ static int pgsql_log(struct ast_cdr *cdr)
struct tm tm;
char sqlcmd[2048] = "", timestr[128];
char *pgerror;
int pgerr;
ast_mutex_lock(&pgsql_lock);
@@ -92,32 +91,28 @@ static int pgsql_log(struct ast_cdr *cdr)
if (connected) {
char *clid=NULL, *dcontext=NULL, *channel=NULL, *dstchannel=NULL, *lastapp=NULL, *lastdata=NULL;
char *uniqueid=NULL, *userfield=NULL, *src=NULL, *dst=NULL;
char *uniqueid=NULL, *userfield=NULL;
/* Maximum space needed would be if all characters needed to be escaped, plus a trailing NULL */
if ((clid = alloca(strlen(cdr->clid) * 2 + 1)) != NULL)
PQescapeStringConn(conn, clid, cdr->clid, strlen(cdr->clid), &pgerr);
PQescapeString(clid, cdr->clid, strlen(cdr->clid));
if ((dcontext = alloca(strlen(cdr->dcontext) * 2 + 1)) != NULL)
PQescapeStringConn(conn, dcontext, cdr->dcontext, strlen(cdr->dcontext), &pgerr);
PQescapeString(dcontext, cdr->dcontext, strlen(cdr->dcontext));
if ((channel = alloca(strlen(cdr->channel) * 2 + 1)) != NULL)
PQescapeStringConn(conn, channel, cdr->channel, strlen(cdr->channel), &pgerr);
PQescapeString(channel, cdr->channel, strlen(cdr->channel));
if ((dstchannel = alloca(strlen(cdr->dstchannel) * 2 + 1)) != NULL)
PQescapeStringConn(conn, dstchannel, cdr->dstchannel, strlen(cdr->dstchannel), &pgerr);
PQescapeString(dstchannel, cdr->dstchannel, strlen(cdr->dstchannel));
if ((lastapp = alloca(strlen(cdr->lastapp) * 2 + 1)) != NULL)
PQescapeStringConn(conn, lastapp, cdr->lastapp, strlen(cdr->lastapp), &pgerr);
PQescapeString(lastapp, cdr->lastapp, strlen(cdr->lastapp));
if ((lastdata = alloca(strlen(cdr->lastdata) * 2 + 1)) != NULL)
PQescapeStringConn(conn, lastdata, cdr->lastdata, strlen(cdr->lastdata), &pgerr);
PQescapeString(lastdata, cdr->lastdata, strlen(cdr->lastdata));
if ((uniqueid = alloca(strlen(cdr->uniqueid) * 2 + 1)) != NULL)
PQescapeStringConn(conn, uniqueid, cdr->uniqueid, strlen(cdr->uniqueid), &pgerr);
PQescapeString(uniqueid, cdr->uniqueid, strlen(cdr->uniqueid));
if ((userfield = alloca(strlen(cdr->userfield) * 2 + 1)) != NULL)
PQescapeStringConn(conn, userfield, cdr->userfield, strlen(cdr->userfield), &pgerr);
if ((src = alloca(strlen(cdr->src) * 2 + 1)) != NULL)
PQescapeStringConn(conn, src, cdr->src, strlen(cdr->src), &pgerr);
if ((dst = alloca(strlen(cdr->dst) * 2 + 1)) != NULL)
PQescapeStringConn(conn, dst, cdr->dst, strlen(cdr->dst), &pgerr);
PQescapeString(userfield, cdr->userfield, strlen(cdr->userfield));
/* Check for all alloca failures above at once */
if ((!clid) || (!dcontext) || (!channel) || (!dstchannel) || (!lastapp) || (!lastdata) || (!uniqueid) || (!userfield) || (!src) || (!dst)) {
if ((!clid) || (!dcontext) || (!channel) || (!dstchannel) || (!lastapp) || (!lastdata) || (!uniqueid) || (!userfield)) {
ast_log(LOG_ERROR, "cdr_pgsql: Out of memory error (insert fails)\n");
ast_mutex_unlock(&pgsql_lock);
return -1;
@@ -128,7 +123,7 @@ static int pgsql_log(struct ast_cdr *cdr)
snprintf(sqlcmd,sizeof(sqlcmd),"INSERT INTO %s (calldate,clid,src,dst,dcontext,channel,dstchannel,"
"lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid,userfield) VALUES"
" ('%s','%s','%s','%s','%s', '%s','%s','%s','%s',%ld,%ld,'%s',%ld,'%s','%s','%s')",
table, timestr, clid, src, dst, dcontext,channel, dstchannel, lastapp, lastdata,
table,timestr,clid,cdr->src, cdr->dst, dcontext,channel, dstchannel, lastapp, lastdata,
cdr->duration,cdr->billsec,ast_cdr_disp2str(cdr->disposition),cdr->amaflags, cdr->accountcode, uniqueid, userfield);
ast_log(LOG_DEBUG,"cdr_pgsql: SQL command executed: %s\n",sqlcmd);