Module: sip-router
Branch: andrei/pointer_alias_warnings
Commit: a19584f942eb5bff0169b33580bbf2c31508e0c8
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a19584f…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Mon Oct 12 18:49:28 2009 +0200
core: pointer aliasing warnings fixed
---
pass_fd.c | 8 ++++++--
route.c | 6 +++---
usr_avp.c | 10 +++++-----
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/pass_fd.c b/pass_fd.c
index 7a2b30c..f7fbf7f 100644
--- a/pass_fd.c
+++ b/pass_fd.c
@@ -160,6 +160,7 @@ int send_fd(int unix_socket, void* data, int data_len, int fd)
struct iovec iov[1];
int ret;
#ifdef HAVE_MSGHDR_MSG_CONTROL
+ int* pi;
struct cmsghdr* cmsg;
/* make sure msg_control will point to properly aligned data */
union {
@@ -176,7 +177,8 @@ int send_fd(int unix_socket, void* data, int data_len, int fd)
cmsg->cmsg_level = SOL_SOCKET;
cmsg->cmsg_type = SCM_RIGHTS;
cmsg->cmsg_len = CMSG_LEN(sizeof(fd));
- *(int*)CMSG_DATA(cmsg)=fd;
+ pi=(int*)CMSG_DATA(cmsg);
+ *pi=fd;
msg.msg_flags=0;
#else
msg.msg_accrights=(caddr_t) &fd;
@@ -225,6 +227,7 @@ int receive_fd(int unix_socket, void* data, int data_len, int* fd, int
flags)
int f;
#endif /*NO_MSG_WAITALL */
#ifdef HAVE_MSGHDR_MSG_CONTROL
+ int* pi;
struct cmsghdr* cmsg;
union{
struct cmsghdr cm;
@@ -308,7 +311,8 @@ poll_again:
ret=-1;
goto error;
}
- *fd=*((int*) CMSG_DATA(cmsg));
+ pi=(int*) CMSG_DATA(cmsg);
+ *fd=*pi;
}else{
/*
LOG(L_ERR, "ERROR: receive_fd: no descriptor passed, cmsg=%p,"
diff --git a/route.c b/route.c
index fc25c64..2d9036c 100644
--- a/route.c
+++ b/route.c
@@ -727,7 +727,7 @@ int fix_actions(struct action* a)
return E_UNSPEC;
}
*/
- if ((ret=fix_rval_expr((void**)&rve))<0)
+ if ((ret=fix_rval_expr(&t->val[0].u.data))<0)
return ret;
}
if ( (t->val[1].type==ACTIONS_ST)&&(t->val[1].u.data) ){
@@ -800,7 +800,7 @@ int fix_actions(struct action* a)
rve->fpos.s_line, rve->fpos.s_col);
return E_UNSPEC;
}
- if ((ret=fix_rval_expr((void**)&rve))<0)
+ if ((ret=fix_rval_expr(&t->val[0].u.data))<0)
return ret;
}else{
LOG(L_CRIT, "BUG: fix_actions: null while()"
@@ -841,7 +841,7 @@ int fix_actions(struct action* a)
rve->fpos.s_line, rve->fpos.s_col);
return E_UNSPEC;
}
- if ((ret=fix_rval_expr((void**)&rve))<0)
+ if ((ret=fix_rval_expr(&t->val[0].u.data))<0)
return ret;
}else{
LOG(L_CRIT, "BUG: fix_actions: null drop/return"
diff --git a/usr_avp.c b/usr_avp.c
index 53f38e4..a759664 100644
--- a/usr_avp.c
+++ b/usr_avp.c
@@ -306,10 +306,10 @@ inline str* get_avp_name(avp_t *avp)
return 0;
case AVP_NAME_STR:
/* avp type str, int value */
- return &((struct str_int_data*)&avp->d.data[0])->name;
+ return &((struct str_int_data*)avp->d.p)->name;
case AVP_NAME_STR|AVP_VAL_STR:
/* avp type str, str value */
- return &((struct str_str_data*)&avp->d.data[0])->name;
+ return &((struct str_str_data*)avp->d.p)->name;
}
LOG(L_ERR,"BUG:avp:get_avp_name: unknown avp type (name&val) %d\n",
@@ -331,15 +331,15 @@ inline void get_avp_val(avp_t *avp, avp_value_t *val)
break;
case AVP_NAME_STR:
/* avp type str, int value */
- val->n = ((struct str_int_data*)&avp->d.data[0])->val;
+ val->n = ((struct str_int_data*)avp->d.p)->val;
break;
case AVP_VAL_STR:
/* avp type ID, str value */
- val->s = *(str*)&avp->d.data[0];
+ val->s = *(str*)avp->d.p;
break;
case AVP_NAME_STR|AVP_VAL_STR:
/* avp type str, str value */
- val->s = ((struct str_str_data*)&avp->d.data[0])->val;
+ val->s = ((struct str_str_data*)avp->d.p)->val;
break;
}
}