Re: [PATCH 6.6 003/331] docs: kernel_feat.py: fix potential command injection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/02/2024 03:36, Justin Forbes wrote:
On Sun, Feb 4, 2024 at 7:29 PM Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
On Sun, Feb 04, 2024 at 09:31:48PM +0100, Salvatore Bonaccorso wrote:
On Sun, Feb 04, 2024 at 06:05:05PM +0100, Salvatore Bonaccorso wrote:
On Thu, Feb 01, 2024 at 05:34:25PM +0100, Vegard Nossum wrote:
[...]
I'm guessing maybe a different patch between 6.6 and current mainline is
causing 'fname' to always get assigned for the newer versions and thus
make the run succeed, in spite of the bug.

Something like the patch below (completely untested) should restore the
previous behaviour, but I'm not convinced it's correct.

[...]

Your above change seems to workaround the issue in fact, but need to
do a full build yet.

For Debian I'm temporarily reverting from the 6.6.15 upload:

e961f8c6966a ("docs: kernel_feat.py: fix potential command injection")

This is not the best solution, but unbreaks several other builds.

The alternative would be to apply Vegard's workaround or the proper
solution for that.

What is the "proper" solution here?  Does 6.8-rc3 work?  What are we
missing to be backported here?

I am not sure what the "proper"fix was, but as I mentioned with
6.6.15, this patch broke the build with 6.6.15, but 6.7.3 and newer
were fine.  I think the fix came in through another path incidentally,
but Vegard mentioned a possible fox for 6.6 kernels.  Realistically,
Fedora has moved on to 6.7.x now, but I do still test 6.6.x stable rcs
and while I reported that 6.6.16 was good, it was only because I saw
no regressions from 6.6.15. The docs failure from this patch still
exists.

I'm thinking this might be missing from the backport of the stable
patch, causing it to break on 6.6.15 (since ia64 was removed in 6.7):

diff --git a/Documentation/arch/ia64/features.rst b/Documentation/arch/ia64/features.rst
index d7226fdcf5f8..056838d2ab55 100644
--- a/Documentation/arch/ia64/features.rst
+++ b/Documentation/arch/ia64/features.rst
@@ -1,3 +1,3 @@
 .. SPDX-License-Identifier: GPL-2.0

-.. kernel-feat:: $srctree/Documentation/features ia64
+.. kernel-feat:: features ia64

I also think I understand the kernel_feat.py code a bit better and will
submit a proper fix for that -- basically, if it doesn't manage to
process any lines from the referenced file (which it won't for ia64
since it literally tries to open a file called $srctree/...) then it
calls self.nestedParse() with a non-existent 'fname' and an empty
'lines' -- so the value of the fname parameter is truly unused in the
degenerate case, but it's still referencing the undefined 'fname'.

So I'm thinking:

1) the ia64/features.rst patch above for stable (only) to fix the
immediate breakage in stable,

2) kernel_feat.py patch for mainline that can trickle down into stable
once it's been merged.

Thanks, and sorry for the breakage.


Vegard




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux