Remove the check that prevent carp(4) advskew to be set to '0'.

CARP devices are created with advskew set to '0' and once you set it to
any other value in the valid range (0..254) you can't set it back to zero.

The code in question is also used to prevent that zeroed values overwrite
the CARP defaults when a new CARP device is created.  Since advskew already
defaults to '0' for newly created devices and the new value is guaranteed
to be within the valid range, it is safe to overwrite it here.

PR:		194672
Reported by:	cmb@pfsense.org
In collaboration with:	garga
Tested by:	garga
MFC after:	2 weeks
This commit is contained in:
Luiz Otavio O Souza 2015-01-06 13:07:13 +00:00
parent 2a8c860fe3
commit 57c5139c46
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=276751

View File

@ -1703,13 +1703,11 @@ carp_ioctl(struct ifreq *ifr, u_long cmd, struct thread *td)
}
sc->sc_advbase = carpr.carpr_advbase;
}
if (carpr.carpr_advskew > 0) {
if (carpr.carpr_advskew >= 255) {
error = EINVAL;
break;
}
sc->sc_advskew = carpr.carpr_advskew;
if (carpr.carpr_advskew >= 255) {
error = EINVAL;
break;
}
sc->sc_advskew = carpr.carpr_advskew;
if (carpr.carpr_key[0] != '\0') {
bcopy(carpr.carpr_key, sc->sc_key, sizeof(sc->sc_key));
carp_hmac_prepare(sc);