diff options
author | jpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-25 06:19:50 +0000 |
---|---|---|
committer | jpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-25 06:19:50 +0000 |
commit | 1d803dbe9e9c220c92318862e515d25c09c225e1 (patch) | |
tree | bd206e557aca3f16b347bbbcbc1a12f2b83955ad /channels | |
parent | 97c2d16e9efd968eb829123a5ebbd6cc6a8637cd (diff) |
Fix compiling under dev-mode with gcc 4.4.0.
Mostly trivial changes, but I did not know of any other way to fix the
"dereferencing type-punned pointer will break strict-aliasing rules" error
without creating a tmp variable in chan_skinny.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@208746 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_iax2.c | 2 | ||||
-rw-r--r-- | channels/chan_skinny.c | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index efce3d14d..a7f008f2b 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -3722,7 +3722,7 @@ static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_cha return AST_BRIDGE_FAILED; } /* Put them in native bridge mode */ - if (!flags & (AST_BRIDGE_DTMF_CHANNEL_0 | AST_BRIDGE_DTMF_CHANNEL_1)) { + if ((!flags) & (AST_BRIDGE_DTMF_CHANNEL_0 | AST_BRIDGE_DTMF_CHANNEL_1)) { iaxs[callno0]->bridgecallno = callno1; iaxs[callno1]->bridgecallno = callno0; } diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 983dbf847..90e59c2a3 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -4436,6 +4436,7 @@ static int get_input(struct skinnysession *s) { int res; int dlen = 0; + int *bufaddr; struct pollfd fds[1]; fds[0].fd = s->fd; @@ -4482,7 +4483,8 @@ static int get_input(struct skinnysession *s) return -1; } - dlen = letohl(*(int *)s->inbuf); + bufaddr = (int *)s->inbuf; + dlen = letohl(*bufaddr); if (dlen < 4) { ast_log(LOG_WARNING, "Skinny Client sent invalid data.\n"); ast_mutex_unlock(&s->lock); @@ -4491,7 +4493,7 @@ static int get_input(struct skinnysession *s) if (dlen+8 > sizeof(s->inbuf)) { dlen = sizeof(s->inbuf) - 8; } - *(int *)s->inbuf = htolel(dlen); + *bufaddr = htolel(dlen); res = read(s->fd, s->inbuf+4, dlen+4); ast_mutex_unlock(&s->lock); @@ -4510,13 +4512,15 @@ static int get_input(struct skinnysession *s) static struct skinny_req *skinny_req_parse(struct skinnysession *s) { struct skinny_req *req; + int *bufaddr; if (!(req = ast_calloc(1, SKINNY_MAX_PACKET))) return NULL; ast_mutex_lock(&s->lock); memcpy(req, s->inbuf, skinny_header_size); - memcpy(&req->data, s->inbuf+skinny_header_size, letohl(*(int*)(s->inbuf))-4); + bufaddr = (int *)(s->inbuf); + memcpy(&req->data, s->inbuf+skinny_header_size, letohl(*bufaddr)-4); ast_mutex_unlock(&s->lock); |