Bug #8993
closedPHP error from filter_rules_sort() when config.xml contains no rules
100%
Description
[01-Oct-2018 10:42:56 Etc/UTC] PHP Fatal error: Uncaught Error: Only variables can be passed by reference in /etc/inc/pfsense-utils.inc:2805 Stack trace: #0 /usr/local/www/firewall_rules_edit.php(146): filter_rules_sort() #1 {main} thrown in /etc/inc/pfsense-utils.inc on line 2805
If someone removes all rules, leaving only automatic rules like the anti-lockout rule and bogons, this error can occur.
Updated by Jim Pingle about 6 years ago
- Status changed from New to Feedback
- % Done changed from 0 to 100
Applied in changeset 67807c9536ae1810a067155049c96e8d2b634777.
Updated by Anonymous about 6 years ago
- Target version changed from 2.4.4-GS to 2.4.4-p1
Updated by Anonymous about 6 years ago
- Target version changed from 2.4.4-p1 to 2.4.4-GS
Updated by Luiz Souza about 6 years ago
- Target version changed from 2.4.4-GS to 2.4.4-p1
Updated by Danilo Zrenjanin about 6 years ago
I couldn't replicate this one on:
SG-3100
2.4.4-RELEASE (arm)
built on Thu Sep 20 09:33:19 EDT 2018
FreeBSD 11.2-RELEASE-p3
I tried with a different type of rules with and without aliases. If there is a specific way how to replicate it, please provide more details.
Updated by Jim Pingle about 6 years ago
You have to delete all of the rules in the config so it only has <filter></filter>
So you'd have to hit it from LAN with the anti-lockout rule passing you through.
Updated by Paighton Bisconer about 6 years ago
- Status changed from Feedback to Resolved
Was able to replicate this after verifying <filter></filter> in config, connecting on the Anti-lockout rule, and trying to add a new firewall rule on LAN I received this error when the GUI failed:
Fatal error: Uncaught Error: Only variables can be passed by reference in /etc/inc/pfsense-utils.inc:2864 Stack trace: #0 /usr/local/www/firewall_rules_edit.php(146): filter_rules_sort() #1 {main} thrown in /etc/inc/pfsense-utils.inc on line 2864 PHP ERROR: Type: 1, File: /etc/inc/pfsense-utils.inc, Line: 2864, Message: Uncaught Error: Only variables can be passed by reference in /etc/inc/pfsense-utils.inc:2864 Stack trace: #0 /usr/local/www/firewall_rules_edit.php(146): filter_rules_sort() #1 {main} thrown
After hitting the Back button in the browser I had an alert:
Notices PHP errors PHP ERROR: Type: 1, File: /etc/inc/pfsense-utils.inc, Line: 2864, Message: Uncaught Error: Only variables can be passed by reference in /etc/inc/pfsense-utils.inc:2864 Stack trace: #0 /usr/local/www/firewall_rules_edit.php(146): filter_rules_sort() #1 {main} thrown @ 2018-11-22 01:08:48
Crash report:
Crash report begins. Anonymous machine information: arm 11.2-RELEASE-p3 FreeBSD 11.2-RELEASE-p3 #11 220591260a0(factory-RELENG_2_4_4): Thu Sep 20 10:39:07 EDT 2018 root@buildbot3:/crossbuild/244/obj/armv6/zusWWsAv/arm.armv6/crossbuild/244/pfSense/tmp/FreeBSD-src/sys/pfSense-uFW Crash report details: PHP Errors: [22-Nov-2018 01:08:48 Etc/UTC] PHP Fatal error: Uncaught Error: Only variables can be passed by reference in /etc/inc/pfsense-utils.inc:2864 Stack trace: #0 /usr/local/www/firewall_rules_edit.php(146): filter_rules_sort() #1 {main} thrown in /etc/inc/pfsense-utils.inc on line 2864 No FreeBSD crash data found.
Upgraded to Current Base System 2.4.5.a.20181120.0855, retested with same steps, was able to add new firewall rule without issue.
Confirmed resolved.
Updated by Joachim Tingvold almost 6 years ago
Any way to fix this manually? (i.e. if I don't want to update to dev)
Updated by Jim Pingle almost 6 years ago
Apply the commit listed above using the System Patches package: https://www.netgate.com/docs/pfsense/development/system-patches.html