luci-app-firewall: CBIProtocolSelect: properly handle unrecognized protos
authorJo-Philipp Wich <jo@mein.io>
Thu, 9 Dec 2021 15:24:31 +0000 (16:24 +0100)
committerJo-Philipp Wich <jo@mein.io>
Thu, 9 Dec 2021 15:24:31 +0000 (16:24 +0100)
Prevent incorrectly replacing unrecognized protocol numbers with -1.

Fixes: #5587
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js

index 3f6a309033c63aabef5fbcc0e9c64e94277e078a..03e505e89d3296a233f133715b073069d9ac079e 100644 (file)
@@ -590,8 +590,7 @@ return baseclass.extend({
                        });
 
                        widget.createChoiceElement = function(sb, value) {
-                               var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
-                                   p = lookupProto(lookupProto(m ? +m[1] : value)[0]);
+                               var p = lookupProto(value);
 
                                return ui.Dropdown.prototype.createChoiceElement.call(this, sb, p[2], p[1]);
                        };
@@ -601,9 +600,11 @@ return baseclass.extend({
                                        var m = value.match(/^(0x[0-9a-f]{1,2}|[0-9]{1,3})$/),
                                            p = lookupProto(m ? +m[1] : value);
 
-                                       return (p[0] > -1) ? p[2] : value;
+                                       return (p[0] > -1) ? p[2] : p[1];
                                });
 
+                               values.sort();
+
                                return ui.Dropdown.prototype.createItems.call(this, sb, values.join(' '));
                        };