Imported Upstream version 1.24
[platform/upstream/connman.git] / tools / tap-test.c
index 314d6bc..fdc098a 100644 (file)
@@ -2,7 +2,7 @@
  *
  *  Connection Manager
  *
- *  Copyright (C) 2007-2010  Intel Corporation. All rights reserved.
+ *  Copyright (C) 2007-2012  Intel Corporation. All rights reserved.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License version 2 as
@@ -23,6 +23,7 @@
 #include <config.h>
 #endif
 
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -48,7 +49,7 @@ static int inet_ifup(const char *ifname)
                return -errno;
 
        memset(&ifr, 0, sizeof(ifr));
-       strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
+       strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1);
 
        if (ioctl(sk, SIOCGIFFLAGS, &ifr) < 0) {
                err = -errno;
@@ -88,7 +89,7 @@ static int create_tap(const char *ifname)
 
        memset(&ifr, 0, sizeof(ifr));
        ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
-       strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
+       strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1);
 
        if (ioctl(fd, TUNSETIFF, (void *) &ifr) < 0) {
                perror("Failed to set TUN/TAP interface");