scripts/lib/kdoc/kdoc_files.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
As reported by Randy, currently kdoc_files can go into endless
looks when symlinks are used:
$ ln -s . Documentation/peci/foo
$ ./scripts/kernel-doc Documentation/peci/
...
File "/new_devel/docs/scripts/lib/kdoc/kdoc_files.py", line 52, in _parse_dir
if entry.is_dir():
~~~~~~~~~~~~^^
OSError: [Errno 40] Too many levels of symbolic links: 'Documentation/peci/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo'
Prevent that by not considering symlinks as directories.
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Closes: https://lore.kernel.org/linux-doc/80701524-09fd-4d68-8715-331f47c969f2@infradead.org/
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
scripts/lib/kdoc/kdoc_files.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/lib/kdoc/kdoc_files.py b/scripts/lib/kdoc/kdoc_files.py
index 061c033f32da..1fd8d17edb32 100644
--- a/scripts/lib/kdoc/kdoc_files.py
+++ b/scripts/lib/kdoc/kdoc_files.py
@@ -49,7 +49,7 @@ class GlobSourceFiles:
for entry in obj:
name = os.path.join(dirname, entry.name)
- if entry.is_dir():
+ if entry.is_dir(follow_symlinks=False):
yield from self._parse_dir(name)
if not entry.is_file():
--
2.51.1
On 11/13/25 1:53 AM, Mauro Carvalho Chehab wrote: > As reported by Randy, currently kdoc_files can go into endless > looks when symlinks are used: > > $ ln -s . Documentation/peci/foo > $ ./scripts/kernel-doc Documentation/peci/ > ... > File "/new_devel/docs/scripts/lib/kdoc/kdoc_files.py", line 52, in _parse_dir > if entry.is_dir(): > ~~~~~~~~~~~~^^ > OSError: [Errno 40] Too many levels of symbolic links: 'Documentation/peci/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo' > > Prevent that by not considering symlinks as directories. > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Closes: https://lore.kernel.org/linux-doc/80701524-09fd-4d68-8715-331f47c969f2@infradead.org/ > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Reviewed-by: Randy Dunlap <rdunlap@infradead.org> Tested-by: Randy Dunlap <rdunlap@infradead.org> (again...( > --- > scripts/lib/kdoc/kdoc_files.py | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/scripts/lib/kdoc/kdoc_files.py b/scripts/lib/kdoc/kdoc_files.py > index 061c033f32da..1fd8d17edb32 100644 > --- a/scripts/lib/kdoc/kdoc_files.py > +++ b/scripts/lib/kdoc/kdoc_files.py > @@ -49,7 +49,7 @@ class GlobSourceFiles: > for entry in obj: > name = os.path.join(dirname, entry.name) > > - if entry.is_dir(): > + if entry.is_dir(follow_symlinks=False): > yield from self._parse_dir(name) > > if not entry.is_file(): -- ~Randy
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes: > As reported by Randy, currently kdoc_files can go into endless > looks when symlinks are used: > > $ ln -s . Documentation/peci/foo > $ ./scripts/kernel-doc Documentation/peci/ > ... > File "/new_devel/docs/scripts/lib/kdoc/kdoc_files.py", line 52, in _parse_dir > if entry.is_dir(): > ~~~~~~~~~~~~^^ > OSError: [Errno 40] Too many levels of symbolic links: 'Documentation/peci/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo' > > Prevent that by not considering symlinks as directories. > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > Closes: https://lore.kernel.org/linux-doc/80701524-09fd-4d68-8715-331f47c969f2@infradead.org/ > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> This looks the same as yesterday's version? Applied, anyway, thanks. jon
On Thu, Nov 13, 2025 at 09:21:26AM -0700, Jonathan Corbet wrote: > Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes: > > > As reported by Randy, currently kdoc_files can go into endless > > looks when symlinks are used: > > > > $ ln -s . Documentation/peci/foo > > $ ./scripts/kernel-doc Documentation/peci/ > > ... > > File "/new_devel/docs/scripts/lib/kdoc/kdoc_files.py", line 52, in _parse_dir > > if entry.is_dir(): > > ~~~~~~~~~~~~^^ > > OSError: [Errno 40] Too many levels of symbolic links: 'Documentation/peci/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo' > > > > Prevent that by not considering symlinks as directories. > > > > Reported-by: Randy Dunlap <rdunlap@infradead.org> > > Closes: https://lore.kernel.org/linux-doc/80701524-09fd-4d68-8715-331f47c969f2@infradead.org/ > > Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> > > This looks the same as yesterday's version? I haven't changed it (but I was assuming yesterday's version was not sent). I had some bugs related to smtp proxy at the office.... > > Applied, anyway, thanks. Thanks! > > jon -- Thanks, Mauro
On 11/13/25 9:08 AM, Mauro Carvalho Chehab wrote: > On Thu, Nov 13, 2025 at 09:21:26AM -0700, Jonathan Corbet wrote: >> Mauro Carvalho Chehab <mchehab+huawei@kernel.org> writes: >> >>> As reported by Randy, currently kdoc_files can go into endless >>> looks when symlinks are used: >>> >>> $ ln -s . Documentation/peci/foo >>> $ ./scripts/kernel-doc Documentation/peci/ >>> ... >>> File "/new_devel/docs/scripts/lib/kdoc/kdoc_files.py", line 52, in _parse_dir >>> if entry.is_dir(): >>> ~~~~~~~~~~~~^^ >>> OSError: [Errno 40] Too many levels of symbolic links: 'Documentation/peci/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo/foo' >>> >>> Prevent that by not considering symlinks as directories. >>> >>> Reported-by: Randy Dunlap <rdunlap@infradead.org> >>> Closes: https://lore.kernel.org/linux-doc/80701524-09fd-4d68-8715-331f47c969f2@infradead.org/ >>> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> >> >> This looks the same as yesterday's version? > > I haven't changed it (but I was assuming yesterday's version was not sent). I had some bugs related to smtp proxy at the office.... That would be the one that I replied to that was missing a Subject: line according to my mail client: https://lore.kernel.org/linux-doc/20251112171452.Y5jX9%25mchehab+huawei@kernel.org/ (actually there were several like that) -- ~Randy
© 2016 - 2026 Red Hat, Inc.