summaryrefslogtreecommitdiffstats
path: root/src/etc/inc/interfaces.inc
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2016-11-29 10:53:19 -0500
committerjim-p <jimp@pfsense.org>2016-11-29 10:53:19 -0500
commit7a9c12b3d6e01e11ec0af3a6690a5c3de2fbbd2e (patch)
tree36a35bebb42b991fa66cba405110ccc40ba46e26 /src/etc/inc/interfaces.inc
parent481db4fe0459b8e4337ad2ffcf91963f74325105 (diff)
downloadpfsense-7a9c12b3d6e01e11ec0af3a6690a5c3de2fbbd2e.zip
pfsense-7a9c12b3d6e01e11ec0af3a6690a5c3de2fbbd2e.tar.gz
Improve input validation on static ARP for DHCP static mapping entries, also prevent the backend from attempting to apply entries with insufficient information stored. Fixes #6969
Diffstat (limited to 'src/etc/inc/interfaces.inc')
-rw-r--r--src/etc/inc/interfaces.inc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc
index c1d3fdb..b1ef885 100644
--- a/src/etc/inc/interfaces.inc
+++ b/src/etc/inc/interfaces.inc
@@ -5927,7 +5927,9 @@ function interfaces_staticarp_configure($if) {
mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 ");
if (is_array($config['dhcpd'][$if]['staticmap'])) {
foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) {
- mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
+ if (!empty($arpent['ipaddr']) && !empty($arpent['mac'])) {
+ mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
+ }
}
}
} else {
@@ -5935,7 +5937,7 @@ function interfaces_staticarp_configure($if) {
mwexec("/usr/sbin/arp -d -i " . escapeshellarg($ifcfg['if']) . " -a > /dev/null 2>&1 ");
if (is_array($config['dhcpd'][$if]) && is_array($config['dhcpd'][$if]['staticmap'])) {
foreach ($config['dhcpd'][$if]['staticmap'] as $arpent) {
- if (isset($arpent['arp_table_static_entry'])) {
+ if (isset($arpent['arp_table_static_entry']) && !empty($arpent['ipaddr']) && !empty($arpent['mac'])) {
mwexec("/usr/sbin/arp -s " . escapeshellarg($arpent['ipaddr']) . " " . escapeshellarg($arpent['mac']));
}
}
OpenPOWER on IntegriCloud