On Wed, 09 May 2018 09:31:56 +0800 Andy Green <[email protected]> wrote:
> /home/agreen/projects/dpdk/drivers/net/vdev_netvsc/ > vdev_netvsc.c:335:2:error: passing argument 2 to restrict- > qualified parameter aliases with argument 1 [-Werror=restrict] > ret = readlink(buf, buf, size); > ^~~ > > Signed-off-by: Andy Green <[email protected]> > --- > drivers/net/vdev_netvsc/vdev_netvsc.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c > b/drivers/net/vdev_netvsc/vdev_netvsc.c > index c321a9f1b..e0d3c1c7c 100644 > --- a/drivers/net/vdev_netvsc/vdev_netvsc.c > +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c > @@ -327,12 +327,14 @@ static int > vdev_netvsc_sysfs_readlink(char *buf, size_t size, const char *if_name, > const char *relpath) > { > + char in[160]; > int ret; > > - ret = snprintf(buf, size, "/sys/class/net/%s/%s", if_name, relpath); > - if (ret == -1 || (size_t)ret >= size) > + ret = snprintf(in, sizeof(buf) - 1, "/sys/class/net/%s/%s", > + if_name, relpath); This is wrong. buf is char * and sizeof(char *) - 1 is 3

