From 8cb6ca5d82b91a49a21992a06c55239cfe405125 Mon Sep 17 00:00:00 2001 From: liuyang Date: Wed, 18 Jul 2018 10:55:16 +0800 Subject: [PATCH] =?UTF-8?q?20180718-2=20=E4=BF=AE=E6=94=B9valgrind?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E5=88=B0=E4=B8=80=E5=A4=84invalid=20write?= =?UTF-8?q?=EF=BC=9A=20kni.c:2291memset(g=5Fkni=5Fcomminfo.fd=5Ftun,0,size?= =?UTF-8?q?of(g=5Fkni=5Fcomminfo.thread=5Fnum*sizeof(int)));=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=EF=BC=9A=20memset(g=5Fkni=5Fcomminfo.fd=5Ftu?= =?UTF-8?q?n,0,g=5Fkni=5Fcomminfo.thread=5Fnum*sizeof(int));?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kni.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/kni.c b/kni.c index 13615ae..e54d2e3 100644 --- a/kni.c +++ b/kni.c @@ -240,7 +240,7 @@ static int kni_send_fds(int socket, int *fds, int n,int protocol) int flags=MSG_NOSIGNAL; struct msghdr msg = {0}; struct cmsghdr *cmsg; - char buf[CMSG_SPACE(n * sizeof(int))], dup[256]; + char buf[CMSG_SPACE(n * sizeof(int))], dup[256]={0}; memset(buf, 0, sizeof(buf)); struct iovec io = { .iov_base = &dup, .iov_len = sizeof(dup) }; @@ -485,6 +485,12 @@ int tun_write_data_v6(int fd,char* send_buf,int send_buflen) int kni_sendpkt_routdir(int thread_seq,int iplen,char* ip,struct stream_tuple4_v4* ipv4_addr,int iprever_flag,int routdir,uchar* smac,uchar* dmac) { + if((routdir!=0)&&(routdir!=1)) + { + MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_DEBUG,"kni_sendpkt_routdir","routdir:%d",routdir); + return -1; + } + int ret=0; int buflen=iplen+KNI_ETHER_LEN; @@ -2288,7 +2294,7 @@ extern "C" char kni_init() } g_kni_comminfo.fd_tun=(int*)malloc(g_kni_comminfo.thread_num*sizeof(int)); - memset(g_kni_comminfo.fd_tun,0,sizeof(g_kni_comminfo.thread_num*sizeof(int))); + memset(g_kni_comminfo.fd_tun,0,g_kni_comminfo.thread_num*sizeof(int)); ret=tun_alloc_mq(g_kni_comminfo.tun_name,g_kni_comminfo.thread_num,g_kni_comminfo.fd_tun); if(ret<0)