From 456ffe56e21360eb79529562e45f34390c098d16 Mon Sep 17 00:00:00 2001 From: Nicolas Geoffray Date: Mon, 13 Jan 2025 10:13:15 +0000 Subject: Fail dex verification for duplicate static/instance fields. Just like we ensure direct and virtual methods don't conflict, check that static and instance fields also don't conflict. Test: test.py Test: 734-duplicate-fields Change-Id: I3b959bf68a43fda573788ed848976a5fae91f8d1 --- test/734-duplicate-fields/src/Main.java | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 test/734-duplicate-fields/src/Main.java (limited to 'test/734-duplicate-fields/src') diff --git a/test/734-duplicate-fields/src/Main.java b/test/734-duplicate-fields/src/Main.java new file mode 100644 index 0000000000..0d97d02744 --- /dev/null +++ b/test/734-duplicate-fields/src/Main.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import dalvik.system.PathClassLoader; + +public class Main { + static final String TEST_NAME = "734-duplicate-fields"; + + static final String SECONDARY_NAME = TEST_NAME + "-ex"; + static final String SECONDARY_DEX_FILE = + System.getenv("DEX_LOCATION") + "/" + SECONDARY_NAME + ".jar"; + + public static void main(String[] args) throws Exception { + PathClassLoader pcl = new PathClassLoader(SECONDARY_DEX_FILE, Main.class.getClassLoader()); + try { + Class.forName("Cls", true, pcl); + throw new Error("Expected ClassNotFoundException"); + } catch (ClassNotFoundException expected) { + } + } +} -- cgit v1.2.3-59-g8ed1b