Merge changes from topics "am-80b4dac5-dec4-435e-80da-9e61e57797f9", "am-d330d473-ae1e-4326-aebb-577000cc3d45" into nyc-mr2-dev

* changes:
  [RESTRICT AUTOMERGE]: CTS test fix for Android Security CVE-2017-0630
  Revert "[RESTRICT AUTOMERGE]Revert "RESTRICT AUTOMERGE : CTS test for Android Security b/72460579 b/34277115""
diff --git a/hostsidetests/securitybulletin/src/android/security/cts/Poc17_05.java b/hostsidetests/securitybulletin/src/android/security/cts/Poc17_05.java
index efddaaa..0e1a975 100644
--- a/hostsidetests/securitybulletin/src/android/security/cts/Poc17_05.java
+++ b/hostsidetests/securitybulletin/src/android/security/cts/Poc17_05.java
@@ -17,6 +17,8 @@
 package android.security.cts;
 
 import android.platform.test.annotations.SecurityTest;
+import java.util.Arrays;
+import java.util.concurrent.Callable;
 
 @SecurityTest
 public class Poc17_05 extends SecurityTestCase {
@@ -46,4 +48,32 @@
                          "[\\s\\n\\S]*>>> /system/bin/" +
                          "mediaserver <<<", logcatOut);
     }
+
+    /**
+     *  b/34277115
+     */
+    @SecurityTest(minPatchLevel = "2017-05")
+    public void testPocCVE_2017_0630() throws Exception {
+        if (containsDriver(getDevice(), "/sys/kernel/debug/tracing/printk_formats")) {
+            String printkFormats = AdbUtils.runCommandLine(
+                    "cat /sys/kernel/debug/tracing/printk_formats", getDevice());
+            String[] pointerStrings = printkFormats.split("\n");
+            assertNotKernelPointer(new Callable<String>() {
+                int index = 0;
+                @Override
+                public String call() {
+                  for (; index < pointerStrings.length; index++) {
+                      String line = pointerStrings[index];
+                      String pattern = "0x";
+                      int startIndex = line.indexOf(pattern);
+                      if (startIndex == -1) {
+                          continue;
+                      }
+                      return line.substring(startIndex + pattern.length());
+                  }
+                  return null;
+                }
+            }, null);
+        }
+    }
 }