From cee22ec3dc0df11a621fb5d262b9fb679f0fcb69 Mon Sep 17 00:00:00 2001 From: wangyu Date: Tue, 15 Aug 2017 13:03:22 +0800 Subject: [PATCH] zero out every sockaddr --- main.cpp | 26 +++++++++++++------------- makefile | 2 +- network.cpp | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/main.cpp b/main.cpp index 3158452..ef077b9 100755 --- a/main.cpp +++ b/main.cpp @@ -860,8 +860,8 @@ int try_to_list_and_bind(int port) close(old_bind_fd); } - struct sockaddr_in temp_bind_addr; - bzero(&temp_bind_addr, sizeof(temp_bind_addr)); + struct sockaddr_in temp_bind_addr={0}; + //bzero(&temp_bind_addr, sizeof(temp_bind_addr)); temp_bind_addr.sin_family = AF_INET; temp_bind_addr.sin_port = htons(port); @@ -1375,7 +1375,7 @@ int client_on_raw_recv(conn_info_t &conn_info) u64_t u64=conn_info.blob->conv_manager.find_u64_by_conv(tmp_conv_id); - sockaddr_in tmp_sockaddr; + sockaddr_in tmp_sockaddr={0}; tmp_sockaddr.sin_family = AF_INET; tmp_sockaddr.sin_addr.s_addr=(u64>>32u); @@ -1668,10 +1668,10 @@ int server_on_raw_recv_ready(conn_info_t &conn_info,char * ip_port,char type,cha tmp_conv_id); return 0; } - struct sockaddr_in remote_addr_in; + struct sockaddr_in remote_addr_in={0}; socklen_t slen = sizeof(sockaddr_in); - memset(&remote_addr_in, 0, sizeof(remote_addr_in)); + //memset(&remote_addr_in, 0, sizeof(remote_addr_in)); remote_addr_in.sin_family = AF_INET; remote_addr_in.sin_port = htons(remote_port); remote_addr_in.sin_addr.s_addr = remote_address_uint32; @@ -1862,10 +1862,10 @@ int server_on_raw_recv_pre_ready(conn_info_t &conn_info,char * ip_port,u32_t tmp int get_src_adress(u32_t &ip) { - struct sockaddr_in remote_addr_in; + struct sockaddr_in remote_addr_in={0}; socklen_t slen = sizeof(sockaddr_in); - memset(&remote_addr_in, 0, sizeof(remote_addr_in)); + //memset(&remote_addr_in, 0, sizeof(remote_addr_in)); remote_addr_in.sin_family = AF_INET; remote_addr_in.sin_port = htons(remote_port); remote_addr_in.sin_addr.s_addr = remote_address_uint32; @@ -1888,7 +1888,7 @@ int get_src_adress(u32_t &ip) return -1; } - struct sockaddr_in my_addr; + struct sockaddr_in my_addr={0}; unsigned int len=sizeof(my_addr); if(getsockname(new_udp_fd, (struct sockaddr *) &my_addr, &len)!=0) return -1; @@ -1950,10 +1950,10 @@ int client_event_loop() int yes = 1; //setsockopt(udp_fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); - struct sockaddr_in local_me; + struct sockaddr_in local_me={0}; socklen_t slen = sizeof(sockaddr_in); - memset(&local_me, 0, sizeof(local_me)); + //memset(&local_me, 0, sizeof(local_me)); local_me.sin_family = AF_INET; local_me.sin_port = htons(local_port); local_me.sin_addr.s_addr = local_address_uint32; @@ -2038,7 +2038,7 @@ int client_event_loop() { int recv_len; - struct sockaddr_in udp_new_addr_in; + struct sockaddr_in udp_new_addr_in={0}; socklen_t udp_new_addr_len = sizeof(sockaddr_in); if ((recv_len = recvfrom(udp_fd, buf, max_data_len, 0, (struct sockaddr *) &udp_new_addr_in, &udp_new_addr_len)) == -1) { @@ -2137,8 +2137,8 @@ int server_event_loop() bind_fd=socket(AF_INET,SOCK_DGRAM,0); } - struct sockaddr_in temp_bind_addr; - bzero(&temp_bind_addr, sizeof(temp_bind_addr)); + struct sockaddr_in temp_bind_addr={0}; + // bzero(&temp_bind_addr, sizeof(temp_bind_addr)); temp_bind_addr.sin_family = AF_INET; temp_bind_addr.sin_port = htons(local_port); diff --git a/makefile b/makefile index ea7c67a..08fd12d 100755 --- a/makefile +++ b/makefile @@ -2,7 +2,7 @@ cc_cross=/home/wangyu/OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.8-linaro_uClibc- cc_local=g++ cc_ar71xx=/home/wangyu/OpenWrt-SDK-ar71xx-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-g++ cc_bcm2708=/home/wangyu/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ -FLAGS= -std=c++11 -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter +FLAGS= -std=c++11 -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-missing-field-initializers SOURCES=main.cpp lib/aes.c lib/md5.c encrypt.cpp log.cpp network.cpp common.cpp NAME=udp2raw TAR=${NAME}_binaries.tar.gz ${NAME}_amd64 ${NAME}_x86 ${NAME}_ar71xx ${NAME}_bcm2708 diff --git a/network.cpp b/network.cpp index dafc355..2143c00 100644 --- a/network.cpp +++ b/network.cpp @@ -354,7 +354,7 @@ int send_raw_ip(raw_info_t &raw_info,const char * payload,int payloadlen) int ret; if(lower_level==0) { - struct sockaddr_in sin; + struct sockaddr_in sin={0}; sin.sin_family = AF_INET; //sin.sin_port = htons(info.dst_port); //dont need this sin.sin_addr.s_addr = send_info.dst_ip; @@ -364,8 +364,8 @@ int send_raw_ip(raw_info_t &raw_info,const char * payload,int payloadlen) else { - struct sockaddr_ll addr; - memset(&addr,0,sizeof(addr)); + struct sockaddr_ll addr={0}; + //memset(&addr,0,sizeof(addr)); addr.sll_family=AF_PACKET; addr.sll_ifindex=ifindex; @@ -390,7 +390,7 @@ int send_raw_ip(raw_info_t &raw_info,const char * payload,int payloadlen) int peek_raw(packet_info_t &peek_info) { static char peek_raw_buf[buf_len]; char *ip_begin=peek_raw_buf+link_level_header_len; - struct sockaddr saddr; + struct sockaddr saddr={0}; socklen_t saddr_size=sizeof(saddr); int recv_len = recvfrom(raw_recv_fd, peek_raw_buf,max_data_len, MSG_PEEK ,&saddr , &saddr_size);//change max_data_len to something smaller,we only need header here iphdr * iph = (struct iphdr *) (ip_begin); @@ -455,7 +455,7 @@ int recv_raw_ip(raw_info_t &raw_info,char * &payload,int &payloadlen) static char recv_raw_ip_buf[buf_len]; iphdr * iph; - struct sockaddr saddr; + struct sockaddr saddr={0}; socklen_t saddr_size = sizeof(saddr); int flag=0; int recv_len = recvfrom(raw_recv_fd, recv_raw_ip_buf, max_data_len, flag ,&saddr , &saddr_size);