[PATCH] scripts: docs: kdoc_files.py: don't consider symlinks as directories

Mauro Carvalho Chehab posted 1 patch 2 months, 3 weeks ago
scripts/lib/kdoc/kdoc_files.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] scripts: docs: kdoc_files.py: don't consider symlinks as directories
Posted by Mauro Carvalho Chehab 2 months, 3 weeks ago
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
Re: [PATCH] scripts: docs: kdoc_files.py: don't consider symlinks as directories
Posted by Randy Dunlap 2 months, 3 weeks ago

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
Re: [PATCH] scripts: docs: kdoc_files.py: don't consider symlinks as directories
Posted by Jonathan Corbet 2 months, 3 weeks ago
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
Re: [PATCH] scripts: docs: kdoc_files.py: don't consider symlinks as directories
Posted by Mauro Carvalho Chehab 2 months, 3 weeks ago
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
Re: [PATCH] scripts: docs: kdoc_files.py: don't consider symlinks as directories
Posted by Randy Dunlap 2 months, 3 weeks ago

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