Dear Maintainers,

I am attaching the updated snakeyaml2.patch as it seems that the Salsa
repository [1] is no longer updated, and the previous upload was done
as a NMU.
The update patch includes setting a TagInspector that allows
instantiating classes from the top-level tags.

Best Regards,
 Vladimir.

[1] https://salsa.debian.org/android-tools-team/apktool
Description: constructing Constructor and Representer derivatives with default
 LoaderOptions and DumperOptions to comply with the interface of snakeyaml 2.x
Author: Pierre Gruet <[email protected]>
Forwarded: no
Last-Update: 2025-10-12

--- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/ClassSafeConstructor.java
+++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/ClassSafeConstructor.java
@@ -16,6 +16,7 @@
  */
 package brut.androlib.meta;
 
+import org.yaml.snakeyaml.LoaderOptions;
 import org.yaml.snakeyaml.constructor.AbstractConstruct;
 import org.yaml.snakeyaml.constructor.Constructor;
 import org.yaml.snakeyaml.error.YAMLException;
@@ -29,12 +30,16 @@
     protected final List<Class<?>> allowableClasses = new ArrayList<>();
 
     public ClassSafeConstructor() {
+        super(new LoaderOptions());
         this.yamlConstructors.put(Tag.STR, new ConstructStringEx());
 
         this.allowableClasses.add(MetaInfo.class);
         this.allowableClasses.add(PackageInfo.class);
         this.allowableClasses.add(UsesFramework.class);
         this.allowableClasses.add(VersionInfo.class);
+        loadingConfig.setTagInspector( tag ->
+                this.allowableClasses.stream().map( x -> x.getName() )
+                .anyMatch( x -> x.equals(tag.getClassName())));
     }
 
     protected Object newInstance(Node node) {
--- a/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/EscapedStringRepresenter.java
+++ b/brut.apktool/apktool-lib/src/main/java/brut/androlib/meta/EscapedStringRepresenter.java
@@ -16,11 +16,13 @@
  */
 package brut.androlib.meta;
 
+import org.yaml.snakeyaml.DumperOptions;
 import org.yaml.snakeyaml.nodes.Node;
 import org.yaml.snakeyaml.representer.Representer;
 
 public class EscapedStringRepresenter extends Representer {
     public EscapedStringRepresenter() {
+        super(new DumperOptions());
         RepresentStringEx representStringEx = new RepresentStringEx();
         multiRepresenters.put(String.class, representStringEx);
         representers.put(String.class, representStringEx);

Reply via email to