Re: [PATCH] scripts/kernel-doc: fix identifier parsing regex

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

 



Vegard Nossum <vegard.nossum@xxxxxxxxxx> writes:

> John wrote:
>
>> kernel-doc gets confused by code like the following:
>>
>> /**
>>  * define HOMA_MIN_DEFAULT_PORT - The 16-bit port space is divided into
>>  * two nonoverlapping regions. Ports 1-32767 are reserved exclusively
>>  * for well-defined server ports. The remaining ports are used for client
>>  * ports; these are allocated automatically by Homa. Port 0 is reserved.
>>  */
>> #define HOMA_MIN_DEFAULT_PORT 0x8000
>>
>> It seems to use the last "-" on the line (the one in "16-bit") rather
>> than the first one, so it produces the following false error message:
>>
>> homa.h:50: warning: expecting prototype for HOMA_MIN_DEFAULT_PORT -
>> The 16(). Prototype was for HOMA_MIN_DEFAULT_PORT() instead
>>
>> There are similar problems if there is a ":" later on the line.
>
> The problem is the regex for the identifier, which is a greedy /.*/ that
> matches everything up to the last - or : (i.e. $decl_end). Fix it by
> tightening up this regex and not matching those characters as part of the
> identifier.
>
> Link: https://lore.kernel.org/all/CAGXJAmzfRzE=A94NT5ETtj3bZc-=2oLg-9E5Kjh4o_-iuw1q8g@xxxxxxxxxxxxxx/
> Reported-by: John Ousterhout <ouster@xxxxxxxxxxxxxxx>
> Reviewed-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
> Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx>
> ---
>  scripts/kernel-doc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/kernel-doc b/scripts/kernel-doc
> index 4ee843d3600e2..e57c5e989a0a8 100755
> --- a/scripts/kernel-doc
> +++ b/scripts/kernel-doc
> @@ -2085,7 +2085,7 @@ sub process_name($$) {
>          # Look for foo() or static void foo() - description; or misspelt
>          # identifier
>          elsif (/^$decl_start$fn_type?(\w+)\s*$parenthesis?\s*$decl_end?$/ ||
> -            /^$decl_start$fn_type?(\w+.*)$parenthesis?\s*$decl_end$/) {
> +            /^$decl_start$fn_type?(\w+[^-:]*)$parenthesis?\s*$decl_end$/) {
>              $identifier = $1;

Applied, thanks.

jon




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux