svn commit: r339535 - head/sbin/ifconfig

Andrey V. Elsukov ae at FreeBSD.org
Sun Oct 21 14:40:46 UTC 2018


Author: ae
Date: Sun Oct 21 14:40:45 2018
New Revision: 339535
URL: https://svnweb.freebsd.org/changeset/base/339535

Log:
  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
  MFC after:	3 weeks
  Sponsored by:	Yandex LLC
  Differential Revision:	https://reviews.freebsd.org/D17171

Modified:
  head/sbin/ifconfig/ifconfig.c

Modified: head/sbin/ifconfig/ifconfig.c
==============================================================================
--- head/sbin/ifconfig/ifconfig.c	Sun Oct 21 14:23:56 2018	(r339534)
+++ head/sbin/ifconfig/ifconfig.c	Sun Oct 21 14:40:45 2018	(r339535)
@@ -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 exist",
+					    ifname);
+				argc--, argv++;
+			}
 		}
 	}
 


More information about the svn-src-all mailing list