diff options
-rw-r--r-- | mktap.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/mktap.c b/mktap.c index 3fe5ce3..8e0b5bf 100644 --- a/mktap.c +++ b/mktap.c @@ -65,7 +65,7 @@ void ex_usage() int main(int argc, char **argv) { - char *ifr_name_in = "tap%d"; + char *ifr_name_in = NULL; bool name_env = true; int c; @@ -87,11 +87,13 @@ int main(int argc, char **argv) // ifr_name is a macro, so add a trailing _. char *ifr_name_ = calloc(IFNAMSIZ, sizeof(char)); - if (strlen(ifr_name_in) > IFNAMSIZ - 1) { - fprintf(stderr, "mktap: ifr_name too long (max %i)\n", IFNAMSIZ - 1); - return EX_USAGE; + if (ifr_name_in) { + if (strlen(ifr_name_in) > IFNAMSIZ - 1) { + fprintf(stderr, "mktap: ifr_name too long (max %i)\n", IFNAMSIZ - 1); + return EX_USAGE; + } + strcpy(ifr_name_, ifr_name_in); } - strcpy(ifr_name_, ifr_name_in); errno = 0; char *target_fd_end; |