Do you want to send a PR ?

On Mon, 6 Jan 2025 at 12:15, MichalFoksa (via GitHub) <g...@apache.org>
wrote:

>
> MichalFoksa commented on code in PR #2934:
> URL: https://github.com/apache/avro/pull/2934#discussion_r1903966434
>
>
> ##########
>
> lang/java/avro/src/main/java/org/apache/avro/specific/SpecificDatumReader.java:
> ##########
> @@ -101,12 +115,43 @@ private Class getPropAsClass(Schema schema, String
> prop) {
>      if (name == null)
>        return null;
>      try {
> -      return ClassUtils.forName(getData().getClassLoader(), name);
> +      Class clazz = ClassUtils.forName(getData().getClassLoader(), name);
> +      checkSecurity(clazz);
> +      return clazz;
>      } catch (ClassNotFoundException e) {
>        throw new AvroRuntimeException(e);
>      }
>    }
>
> +  private boolean trustAllPackages() {
> +    return (trustedPackages.size() == 1 &&
> "*".equals(trustedPackages.get(0)));
> +  }
> +
> +  private void checkSecurity(Class clazz) throws ClassNotFoundException {
> +    if (trustAllPackages() || clazz.isPrimitive()) {
> +      return;
> +    }
> +
> +    boolean found = false;
> +    Package thePackage = clazz.getPackage();
> +    if (thePackage != null) {
>
> Review Comment:
>    @Fokko or @martin-g
>    When a class is not in any package `clazz.getPackage()` returns null
> and this condition renders that class trusty.
>
>    Move `if (!found) throw new SecurityException` out of the loop.
>
>
>
> --
> This is an automated message from the Apache Git Service.
> To respond to the message, please log on to GitHub and use the
> URL above to go to the specific comment.
>
> To unsubscribe, e-mail: issues-unsubscr...@avro.apache.org
>
> For queries about this service, please contact Infrastructure at:
> us...@infra.apache.org
>
>

Reply via email to