On Thu, 11 Sep 2025 06:26:37 GMT, Stuart Marks <sma...@openjdk.org> wrote:

>> Weijun Wang has updated the pull request with a new target base due to a 
>> merge or a rebase. The pull request now contains three commits:
>> 
>>  - Merge branch 'master' into 8354469
>>  - decouple PassFailJFrame.java change; simplify code flow
>>  - the fix
>
> src/java.base/share/classes/sun/security/util/Password.java line 193:
> 
>> 191:                 ba[bb.position()] = '\n';
>> 192:             }
>> 193:             return ba;
> 
> Some random comments. This is all internal to this class, and it's all 
> vaguely cleanup, so it's up to you whether to take any action on any of these 
> points.
> 
> It might be worth having a comment on this method that explains why it's 
> doing this. The "obvious" way of encoding the characters is to use 
> String.getBytes(), but you probably don't want to create a String, because (I 
> think) you want to be able to erase the arrays afterwards. Worth explaining, 
> if true.
> 
> At lines 190-191 the mixture of buffer and array stuff is kind of confusing. 
> I think you can check whether bb.remaining() > 0 and use bb.put().
> 
> There are actually three possibilities for what's in the returned byte array: 
> 1) it's completely filled with encoded bytes from the input; 2) it contains 
> the encoded input followed by an NL byte; or 3) it contains the encoded 
> input, an NL byte, followed by an arbitrary number of zero bytes. The way 
> that the returned array is processed by the caller handles this, but it seems 
> a bit brittle. One possibility is always to return an array of the exact 
> correct length, including an NL byte. Of course this entails an extra copy 
> (and an extra array to erase) but there are fewer cases for the caller to 
> handle.

Thanks. I'll add some comments and do not mix buffer and array. The `\n` trick 
as a stop sign will be kept to avoid too many changes.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27196#discussion_r2341920574

Reply via email to