firewall4: fix reading kernel version
authorMieczyslaw Nalewaj <namiltd@yahoo.com>
Wed, 20 Nov 2024 17:16:08 +0000 (18:16 +0100)
committerZoltan HERPAI <wigyori@uid0.hu>
Tue, 17 Dec 2024 22:28:10 +0000 (23:28 +0100)
Fix reading kernel version for kernels with revision 0 e.g. 6.12
Repair incorrect shift of the revision number causing incorrect value for > 256.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
package/network/config/firewall4/patches/000-kernel-version.patch [new file with mode: 0644]

diff --git a/package/network/config/firewall4/patches/000-kernel-version.patch b/package/network/config/firewall4/patches/000-kernel-version.patch
new file mode 100644 (file)
index 0000000..e997f69
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/root/usr/share/ucode/fw4.uc
++++ b/root/usr/share/ucode/fw4.uc
+@@ -496,9 +496,9 @@ return {
+                   v = 0;
+               if (fd) {
+-                  let m = match(fd.read("line"), /^Linux version ([0-9]+)\.([0-9]+)\.([0-9]+)/);
++                  let m = match(fd.read("line"), /^Linux version ([0-9]+)\.([0-9]+)(\.([0-9]+))?/);
+-                  v = m ? (+m[1] << 24) | (+m[2] << 16) | (+m[3] << 8) : 0;
++                  v = m ? (+m[1] << 24) | (+m[2] << 16) | (+m[4]) : 0;
+                   fd.close();
+               }