Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 17 Nov 2018 23:56:26 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r340528 - stable/12/sbin/ifconfig
Message-ID:  <201811172356.wAHNuQdV072433@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Sat Nov 17 23:56:25 2018
New Revision: 340528
URL: https://svnweb.freebsd.org/changeset/base/340528

Log:
  MFC r339535:
    Do not allow use `create` keyword as hostname when ifconfig(8) is invoked
    for already existing interface.
  
    It appeared, that ifconfig(8) assumes `create` keyword as hostname and
    tries to resolve it, when `ifconfig ifname create` invoked for already
    existing interface. This can produce some unexpected results, when hostname
    resolving has successfully happened. This patch adds check for such case.
    When an interface is already exists, and create is only one argument,
    return error message. But when there are some other arguments, just remove
    create keyword from the arguments list.
  
    Obtained from:	Yandex LLC
    Sponsored by:	Yandex LLC
    Differential Revision:	https://reviews.freebsd.org/D17171
  
  MFC r339536:
    Fix grammar.

Modified:
  stable/12/sbin/ifconfig/ifconfig.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/sbin/ifconfig/ifconfig.c
==============================================================================
--- stable/12/sbin/ifconfig/ifconfig.c	Sat Nov 17 23:54:19 2018	(r340527)
+++ stable/12/sbin/ifconfig/ifconfig.c	Sat Nov 17 23:56:25 2018	(r340528)
@@ -504,6 +504,18 @@ main(int argc, char *argv[])
 			}
 #endif
 			errx(1, "interface %s does not exist", ifname);
+		} else {
+			/*
+			 * Do not allow use `create` command as hostname if
+			 * address family is not specified.
+			 */
+			if (argc > 0 && (strcmp(argv[0], "create") == 0 ||
+			    strcmp(argv[0], "plumb") == 0)) {
+				if (argc == 1)
+					errx(1, "interface %s already exists",
+					    ifname);
+				argc--, argv++;
+			}
 		}
 	}
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201811172356.wAHNuQdV072433>