On Fri, 14 Oct 2011 15:05:10 -0300 Luiz Capitulino <lcapitul...@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 <lcapitul...@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; > }