git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] cocci: do not directly access the .d_type member in struct dirent

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 18, 2025, 19:29 UTC
Message-ID
<xmqqsejwetli.fsf@gitster.g>
In-Reply-To
<87ldposxyk.fsf@gmail.com>
Collin Funk <collin.funk1@gmail.com> writes:
Show 16 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
>
>> In "struct dirent", the presence of the .d_type member should not be
>> assumed and the code should instead use DTYPE() macro, with possibly
>> a fallback check to determine the type of the file.
>>
>> Add a rule to catch direct access to the .d_type member and use
>> DTYPE() macro instead, except in the emulation code paths that work
>> on platforms that do have the member.  This is probably not sufficient
>> to notice the lack of necessary fallback code.
>>
>> Signed-off-by: Junio C Hamano <gitster@pobox.com>
>
> This change looks good to me. Atleast it will catch code that fails to
> build on niche platforms, even if it cannot validate existing backup
> code.

I do not think it is necessarily a good idea to allow building a binary that is known to silently misbehave, though.

Show 5 quoted lines
> Reviewed-by: Collin Funk <collin.funk1@gmail.com>
>
> Your fix for the 'git diff --no-index' looks correct [1]. I'll build libcurl
> on an AIX machine I have access to in order to test (not an
> administrator on it).

I do not think you need libcurl if you only want to test the diff --no-index change, but anyway, thanks.

Previous: Collin FunkNext: Collin Funk
Message 4 of 5 in “cocci: matching (multiple) identifiers”
  1. cocci: matching (multiple) identifiersJunio C Hamano, Jun 18, 2025
  2. cocci: do not directly access the .d_type member in struct direntJunio C Hamano, Jun 18, 2025
  3. Collin FunkJun 18, 2025
  4. Junio C HamanoJun 18, 2025
  5. Collin FunkJun 18, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.