Vegard Nossum <vegard.nossum@xxxxxxxxxx> writes: > If the directory passed to the '.. kernel-feat::' directive does not > exist or the get_feat.pl script does not find any files to extract > features from, Sphinx will report the following error: > > Sphinx parallel build error: > UnboundLocalError: local variable 'fname' referenced before assignment > make[2]: *** [Documentation/Makefile:102: htmldocs] Error 2 > > This is due to how I changed the script in c48a7c44a1d0 ("docs: > kernel_feat.py: fix potential command injection"). Before that, the > filename passed along to self.nestedParse() in this case was weirdly > just the whole get_feat.pl invocation. > > We can fix it by doing what kernel_abi.py does -- just pass > self.arguments[0] as 'fname'. > > Fixes: c48a7c44a1d0 ("docs: kernel_feat.py: fix potential command injection") > Cc: Justin Forbes <jforbes@xxxxxxxxxxxxxxxxx> > Cc: Salvatore Bonaccorso <carnil@xxxxxxxxxx> > Cc: Jani Nikula <jani.nikula@xxxxxxxxx> > Cc: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx> > --- > Documentation/sphinx/kernel_feat.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Documentation/sphinx/kernel_feat.py b/Documentation/sphinx/kernel_feat.py > index b9df61eb4501..03ace5f01b5c 100644 > --- a/Documentation/sphinx/kernel_feat.py > +++ b/Documentation/sphinx/kernel_feat.py > @@ -109,7 +109,7 @@ class KernelFeat(Directive): > else: > out_lines += line + "\n" > > - nodeList = self.nestedParse(out_lines, fname) > + nodeList = self.nestedParse(out_lines, self.arguments[0]) > return nodeList So I can certainly track this through to 6.8, but I feel like I'm missing something: - If we have never seen a ".. FILE" line, then (as the changelog notes) no files were found to extract feature information from. In that case, why make the self.nestedParse() call at all? Why not just return rather than making a useless call with a random name? What am I overlooking? Thanks, jon