[sr-dev] git:andrei/pointer_alias_warnings: core: pointer aliasing warnings fixed

Andrei Pelinescu-Onciul andrei at iptel.org
Tue Oct 13 20:14:47 CEST 2009


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=a19584f942eb5bff0169b33580bbf2c31508e0c8

Author: Andrei Pelinescu-Onciul <andrei at iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei at 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;
 	}
 }




More information about the sr-dev mailing list