From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Novotny Subject: [PATCH] Disallow bogus MAC addresses when creating new VIF devices Date: Mon, 23 Mar 2009 11:46:24 +0100 Message-ID: <49C76880.9040903@redhat.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070005080708050806080100" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------070005080708050806080100 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hello everybody, I have created a patch to disallow bogus MAC addresses when attaching new network interface. This checks the device type in device_create() function and when it's 'vif' interface, it finds mac address and tries to match it using regular expression. If the expression can't be matched (ie. no valid MAC address has been provided), the error is returned and entry about attempt to create a virtual network device with bogus MAC address is written to the log file. Signed-off-by: Michal Novotny --------------070005080708050806080100 Content-Type: text/plain; name="xen-disallow-bogus-mac-addr.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xen-disallow-bogus-mac-addr.patch" diff -r 0477f9061c8a tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Fri Mar 20 17:42:46 2009 +0000 +++ b/tools/python/xen/xend/XendDomainInfo.py Mon Mar 23 11:39:53 2009 +0100 @@ -723,6 +723,13 @@ dev_config_dict = self.info['devices'][dev_uuid][1] log.debug("XendDomainInfo.device_create: %s" % scrub_password(dev_config_dict)) + if dev_type == 'vif': + for x in dev_config: + if x != 'vif' and x[0] == 'mac': + if not re.match('^([0-9a-f]{2}:){5}[0-9a-f]{2}$', x[1], re.I): + log.error("Virtual network interface creation error - invalid MAC Address entered: %s", x[1]) + raise VmError("Cannot create a new virtual network interface - MAC address is not valid!"); + if self.domid is not None: try: dev_config_dict['devid'] = devid = \ --------------070005080708050806080100 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------070005080708050806080100--