1 /*
2  * Copyright (C) 2021 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package android.security.cts;
18 import static org.junit.Assume.assumeFalse;
19 
20 import android.platform.test.annotations.AsbSecurityTest;
21 import com.android.tradefed.testtype.DeviceJUnit4ClassRunner;
22 import org.junit.Test;
23 import org.junit.runner.RunWith;
24 
25 @RunWith(DeviceJUnit4ClassRunner.class)
26 public class Bug_187957589 extends SecurityTestCase {
27     /**
28      * b/187957589
29      * Vulnerability Behaviour: out of bounds write in noteAtomLogged for negative atom ids.
30      */
31     @Test
32     @AsbSecurityTest(cveBugId = 187957589)
testPocBug_187957589()33     public void testPocBug_187957589() throws Exception {
34         assumeFalse(moduleIsPlayManaged("com.google.android.os.statsd"));
35         AdbUtils.runPoc("Bug-187957589", getDevice());
36         // Sleep to ensure statsd was able to process the injected event.
37         Thread.sleep(5_000);
38         AdbUtils.assertNoCrashes(getDevice(), "statsd");
39     }
40 }
41