Message ID | 20111014150510.610f6deb@doriath |
---|---|
State | New |
Headers | show |
On Fri, 14 Oct 2011 15:05:10 -0300 Luiz Capitulino <lcapitulino@redhat.com> wrote: > I'm getting: > > could not configure /dev/net/tun (tap%d): Operation not permitted > > When the ioctl() fails, ifr.ifr_name will most likely not be overwritten. > So we better only use it when ifname contains a string. I had forgotten about this one, but just got it again... Stefan, I think this is a candidate for the trivial tree. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > --- > > PS: Trivial tree candidate. > > net/tap-linux.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) > > diff --git a/net/tap-linux.c b/net/tap-linux.c > index ff8cad0..41d581b 100644 > --- a/net/tap-linux.c > +++ b/net/tap-linux.c > @@ -73,7 +73,11 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required > pstrcpy(ifr.ifr_name, IFNAMSIZ, "tap%d"); > ret = ioctl(fd, TUNSETIFF, (void *) &ifr); > if (ret != 0) { > - error_report("could not configure %s (%s): %m", PATH_NET_TUN, ifr.ifr_name); > + if (ifname[0] != '\0') { > + error_report("could not configure %s (%s): %m", PATH_NET_TUN, ifr.ifr_name); > + } else { > + error_report("could not configure %s: %m", PATH_NET_TUN); > + } > close(fd); > return -1; > }
On Fri, Oct 14, 2011 at 03:05:10PM -0300, Luiz Capitulino wrote: > I'm getting: > > could not configure /dev/net/tun (tap%d): Operation not permitted > > When the ioctl() fails, ifr.ifr_name will most likely not be overwritten. > So we better only use it when ifname contains a string. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > --- > > PS: Trivial tree candidate. > > net/tap-linux.c | 6 +++++- > 1 files changed, 5 insertions(+), 1 deletions(-) Thanks, applied to the trivial patches -next tree: http://repo.or.cz/w/qemu/stefanha.git/shortlog/refs/heads/trivial-patches-next Stefan
diff --git a/net/tap-linux.c b/net/tap-linux.c index ff8cad0..41d581b 100644 --- a/net/tap-linux.c +++ b/net/tap-linux.c @@ -73,7 +73,11 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required pstrcpy(ifr.ifr_name, IFNAMSIZ, "tap%d"); ret = ioctl(fd, TUNSETIFF, (void *) &ifr); if (ret != 0) { - error_report("could not configure %s (%s): %m", PATH_NET_TUN, ifr.ifr_name); + if (ifname[0] != '\0') { + error_report("could not configure %s (%s): %m", PATH_NET_TUN, ifr.ifr_name); + } else { + error_report("could not configure %s: %m", PATH_NET_TUN); + } close(fd); return -1; }
I'm getting: could not configure /dev/net/tun (tap%d): Operation not permitted When the ioctl() fails, ifr.ifr_name will most likely not be overwritten. So we better only use it when ifname contains a string. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- PS: Trivial tree candidate. net/tap-linux.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)