On Fri, 1 Nov 2024 13:58:01 GMT, Chen Liang <li...@openjdk.org> wrote:

> An oversight in the patch for 
> [JDK-8338544](https://bugs.openjdk.org/browse/JDK-8338544) #20665 caused 
> `ClassDesc` to incorrectly accept empty strings as binary names.  This patch 
> fixes that problem, and unifies the checks for package and class nominal 
> descriptors.

Please describe where the bug was caused and also record the evaluation 
explaining the cause in the issue.    Here is one part I understand for your 
reference.

One of the causes is that the refactoring done by JDK-8338544 converts the 
explicit check of the return value from `ConstantUtils::skipOverFieldSignature` 
called by `ClassOrInterfaceDescImpl::ofValidated` to `assert`.    The 
refactoring was hard to review.   So `validateBinaryClassName` only validates 
the binary name.  Prior to JDK-8338544, the implementation expects more 
validations performed from `ClassDesc::ofDescriptor`.

I think it requires a thorough understanding of what being validated before 
JDK-8338544 to see if anything else is missing.

I am not sure what validation of package name is regressed.  Please also 
explain.

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

PR Comment: https://git.openjdk.org/jdk/pull/21830#issuecomment-2452218010

Reply via email to