-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-EN-13:01.fxp                                            Errata Notice
                                                          The FreeBSD Project

Topic:		dhclient(8) utility issue on fxp(4) network interface

Category:	core
Modules:	sys_dev
Announced:	2013-06-28
Credits:	Michael L. Squires and YongHyeon PYUN
Affects:	FreeBSD 8.4
Corrected:	2013-06-10 07:31:50 UTC (head, 10.0-CURRENT)
		2013-06-17 04:40:27 UTC (stable/9, 9.1-STABLE)
		2013-06-17 04:42:02 UTC (stable/8, 8.4-STABLE)
		2013-06-28 05:21:59 UTC (releng/8.4, 8.4-RELEASE-p1)

For general information regarding FreeBSD Errata Notices and Security
Advisories, including descriptions of the fields above, security
branches, and the following sections, please visit
<URL:http://security.freebsd.org/>.

I.   Background

The dhclient(8) utility is a Dynamic Host Configuration Protocol (DHCP)
client, which is used for configuring network interfaces.

The fxp(4) network interface driver supports Intel EtherExpress
PRO/100 Ethernet adapters based on the Intel i82557, i82558, i82559,
i82550, i82551, and i82562 chips.

II.  Problem Description

When the dhclient(8) utility is used on an fxp(4) network interface,
configuration of the interface could fail with the following warning
messages displayed:

 fxp0: link state changed to UP
 fxp0: link state changed to DOWN

The cause is that the fxp(4) network interface driver resets the controller
chip twice upon initialization, and the dhclient(8) utility falsely
recognizes the second reset as a link down and attempts reinitialize
the interface.  As a result, the dhclient(8) utility keeps trying to
initialize the interface forever.

III. Impact

A machine which has an fxp(4) network interface does not work with
the dhclient(8) utility.

IV.  Workaround

There is no workaround.  Note that this issue occurs only when the
dhclient(8) utility is used with an fxp(4) interface.  A static
configuration by using the ifconfig(8) utility works.

V.   Solution

Perform one of the following:

1) Upgrade your system to 8-STABLE, or 9-STABLE, or to the releng/8.4
   security branch dated after the correction date.

2) To patch your present system:

The following patches have been verified to apply to FreeBSD 8.4 systems.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch http://security.FreeBSD.org/patches/EN-13:01/fxp_init.patch
# fetch http://security.FreeBSD.org/patches/EN-13:01/fxp_init.patch.asc

b) Apply the patch.

# cd /usr/src
# patch < /path/to/patch

c) Recompile your kernel as described in
<URL:http://www.freebsd.org/handbook/kernelconfig.html> and reboot the
system.

3) To update your vulnerable system via a binary patch:

Systems running 8.4-RELEASE on the i386 or amd64 platforms can be updated
via the freebsd-update(8) utility:

# freebsd-update fetch
# freebsd-update install


VI.  Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch/path                                                      Revision
- -------------------------------------------------------------------------
head                                                              r251600
stable/9/                                                         r251829
stable/8/                                                         r251830
releng/8.4/                                                       r252334
- -------------------------------------------------------------------------

VII. References

The latest revision of this Errata Notice is available at
http://security.FreeBSD.org/advisories/FreeBSD-EN-13:01.fxp.asc
-----BEGIN PGP SIGNATURE-----

iEYEARECAAYFAlHNI3sACgkQFdaIBMps37IlNwCghqzRtILy5k7Bc4u0NsUhWLfb
Qz8An2kbVTqnveuS+apxaAf5Wg4wp3ey
=mArf
-----END PGP SIGNATURE-----