From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 2E23D2C15 for ; Wed, 3 Oct 2018 01:16:50 +0200 (CEST) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Oct 2018 16:16:49 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,333,1534834800"; d="scan'208";a="95927281" Received: from yexl-server.sh.intel.com (HELO localhost) ([10.67.110.207]) by orsmga001.jf.intel.com with ESMTP; 02 Oct 2018 16:16:40 -0700 Date: Wed, 3 Oct 2018 14:04:20 +0800 From: Ye Xiaolong To: Ferruh Yigit Cc: dev@dpdk.org, Maxime Coquelin , Tiwei Bie , Zhihong Wang , xiao.w.wang@intel.com, Rami Rosen , Wang Haiyue Message-ID: <20181003060420.GC78385@intel.com> References: <20180928112344.42791-1-xiaolong.ye@intel.com> <20180928214747.48938-1-xiaolong.ye@intel.com> <20180928214747.48938-3-xiaolong.ye@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) Subject: Re: [dpdk-dev] [PATCH v8 2/2] examples/vdpa: introduce a new sample for vDPA X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Oct 2018 23:16:50 -0000 Hi, Ferruh, On 10/02, Ferruh Yigit wrote: >On 9/28/2018 10:47 PM, Xiaolong Ye wrote: >> The vdpa sample application creates vhost-user sockets by using the >> vDPA backend. vDPA stands for vhost Data Path Acceleration which utilizes >> virtio ring compatible devices to serve virtio driver directly to enable >> datapath acceleration. As vDPA driver can help to set up vhost datapath, >> this application doesn't need to launch dedicated worker threads for vhost >> enqueue/dequeue operations. >> >> Signed-off-by: Xiaolong Ye >> Acked-by: Xiao Wang >> Reviewed-by: Maxime Coquelin > ><...> > >> +static int >> +parse_args(int argc, char **argv) >> +{ >> + static const char *short_option = "i"; >> + static struct option long_option[] = { >> + {"iface", required_argument, NULL, 0}, >> + {"interactive", no_argument, &interactive, 1}, >> + {"client", no_argument, &client_mode, 1}, >> + {NULL, 0, 0, 0}, >> + }; >> + int opt, idx; >> + char *prgname = argv[0]; >> + >> + while ((opt = getopt_long(argc, argv, short_option, long_option, &idx)) >> + != EOF) { >> + switch (opt) { >> + case 'i': >> + printf("Interactive-mode selected\n"); >> + interactive = 1; >> + break; >> + /* long options */ >> + case 0: >> + if (strncmp(long_option[idx].name, "iface", >> + MAX_PATH_LEN) == 0) { >> + strncpy(iface, optarg, MAX_PATH_LEN); > >Giving compiler warning [1], rte_strscpy() is safer to use. > >[1] >In function ‘parse_args’, > > > > inlined from ‘main’ at .../examples/vdpa/main.c:419:8: > > > >.../examples/vdpa/main.c:76:5: error: ‘strncpy’ specified bound 128 equals >destination size [-Werror=stringop-truncation] > > > strncpy(iface, optarg, MAX_PATH_LEN); > > > > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Thanks for the finding, by the way, how do you get this warning? I can't see it in my local build, what compiler you used? Thanks, Xiaolong