On Mon, 22 Dec 2025 07:19:21 GMT, Shawn M Emery <[email protected]> wrote:

>> Rewrite the native calls with FFM.
>
> src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixSystem.java
>  line 78:
> 
>> 76:             }
>> 77: 
>> 78:             var resbuf = passwd.allocate(scope);
> 
> Wouldn't this be 1024 as well?

This is the `MemorySegment allocate(SegmentAllocator allocator)` method in the 
generated `passwd.java`. If I understand correctly, the 2nd argument to 
`getpwuid_r` should be the pointer to a single `passwd` struct and the 3rd is 
to a big enough memory to hold contents of extra pointers inside `passwd`.

> src/jdk.security.auth/share/classes/com/sun/security/auth/module/UnixSystem.java
>  line 81:
> 
>> 79:             var pwd = scope.allocate(C_POINTER);
>> 80:             var pwd_buf = scope.allocate(1024);
>> 81:             int out = getpwuid_r(getuid(), resbuf, pwd_buf, 
>> pwd_buf.byteSize(), pwd);
> 
> nit: resbuf is usually name pwd, which is used to reference the passwd 
> attributes in pwd_buf.

I was using the old names in the C code. They could be confusing. I'll fix them.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/28931#discussion_r2640048037
PR Review Comment: https://git.openjdk.org/jdk/pull/28931#discussion_r2640050297

Reply via email to