)]}'
{"id":"LineageOS%2Fandroid_frameworks_base~401144","triplet_id":"LineageOS%2Fandroid_frameworks_base~lineage-20.0~Icab100bd4ae9b1c8245e6f891ad22101bda5eea5","project":"LineageOS/android_frameworks_base","branch":"lineage-20.0","topic":"T_asb_2024-09","hashtags":[],"change_id":"Icab100bd4ae9b1c8245e6f891ad22101bda5eea5","subject":"DO NOT MERGE Ignore - Sanitized uri scheme by removing scheme delimiter","status":"MERGED","created":"2024-09-06 15:46:57.000000000","updated":"2024-09-13 15:11:40.000000000","submitted":"2024-09-13 15:11:40.000000000","submitter":{"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"401144-T_asb_2024-09","meta_rev_id":"5861d7b93c5b83f8e594ae1d49b980631f469ec5","_number":401144,"virtual_id_number":401144,"owner":{"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"actions":{},"labels":{"Verified":{"all":[{"value":0,"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Code-Review":{"all":[{"value":0,"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-2":"Do not submit","-1":"I would prefer that you didn\u0027t submit this"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"CI":{"all":[{"value":0,"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]}],"values":{"-1":"Fail"," 0":"No score","+1":"Pass"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{},"pending_reviewers":{},"reviewer_updates":[],"messages":[{"id":"291b2dff6546deab6d61f23b31cfe75caafb2120","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-09-06 15:46:57.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"5861d7b93c5b83f8e594ae1d49b980631f469ec5","tag":"autogenerated:gerrit:merged","author":{"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"date":"2024-09-13 15:11:40.000000000","message":"Change has been successfully pushed.","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"32ba2ef377de9df91f37575ee9dab8c88cd0f9a4","revisions":{"fea05c2596a97bf9ea331454d745d7f7706b472b":{"kind":"REWORK","_number":1,"created":"2024-09-06 15:46:57.000000000","uploader":{"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/44/401144/1","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_frameworks_base","ref":"refs/changes/44/401144/1","commands":{"Branch":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/1 \u0026\u0026 git checkout -b change-401144 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/1","Reset To":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"9de25e848a553a4a7a48e6af57d83b5789305e29","subject":"Automatic translation import","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_frameworks_base/commit/9de25e848a553a4a7a48e6af57d83b5789305e29"}]}],"author":{"name":"Kiran Ramachandra","email":"kiranmr@google.com","date":"2024-05-30 21:21:12.000000000","tz":0},"committer":{"name":"Kevin F. Haggerty","email":"haggertk@lineageos.org","date":"2024-09-06 13:35:28.000000000","tz":-360},"subject":"DO NOT MERGE Ignore - Sanitized uri scheme by removing scheme delimiter","message":"DO NOT MERGE Ignore - Sanitized uri scheme by removing scheme delimiter\n\nInitially considered removing unsupported characters as per IANA guidelines, but this could break applications that use custom schemes with asterisks. Instead, opted to remove only the \"://\" to minimize disruption\n\nBug: 261721900\nTest: atest FrameworksCoreTests:android.net.UriTest\n\nNo-Typo-Check: The unit test is specifically written to test few cases, string \"http://https://\" is not a typo\n\nNOTE FOR REVIEWERS - original patch and result patch are not identical.\nPLEASE REVIEW CAREFULLY.\nDiffs between the patches:\n     @AsbSecurityTest(cveBugId \u003d 261721900)\n\u003e +    @SmallTest\n\u003e +    public void testSchemeSanitization() {\n\u003e +        Uri uri \u003d new Uri.Builder()\n\u003e +                .scheme(\"http://https://evil.com:/te:st/\")\n\u003e +                .authority(\"google.com\").path(\"one/way\").build();\n\u003e +        assertEquals(\"httphttpsevil.com:/te:st/\", uri.getScheme());\n\u003e +        assertEquals(\"httphttpsevil.com:/te:st/://google.com/one/way\", uri.toString());\n\u003e +    }\n\u003e +\n\nOriginal patch:\n diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java\nold mode 100644\nnew mode 100644\n--- a/core/java/android/net/Uri.java\n+++ b/core/java/android/net/Uri.java\n@@ -1388,7 +1388,11 @@\n          * @param scheme name or {@code null} if this is a relative Uri\n          */\n         public Builder scheme(String scheme) {\n-            this.scheme \u003d scheme;\n+            if (scheme !\u003d null) {\n+                this.scheme \u003d scheme.replace(\"://\", \"\");\n+            } else {\n+                this.scheme \u003d null;\n+            }\n             return this;\n         }\n\ndiff --git a/core/tests/coretests/src/android/net/UriTest.java b/core/tests/coretests/src/android/net/UriTest.java\nold mode 100644\nnew mode 100644\n--- a/core/tests/coretests/src/android/net/UriTest.java\n+++ b/core/tests/coretests/src/android/net/UriTest.java\n@@ -87,6 +87,16 @@\n         assertNull(u.getAuthority());\n         assertNull(u.getHost());\n     }\n+\n+    @AsbSecurityTest(cveBugId \u003d 261721900)\n+    @SmallTest\n+    public void testSc\n[[[Original patch trimmed due to size. Decoded string size: 1426. Decoded string SHA1: 55d69e9f854938457b2d98b18776898b16c2dd54.]]]\n\nResult patch:\n diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java\nindex 3da696a..f0262e9 100644\n--- a/core/java/android/net/Uri.java\n+++ b/core/java/android/net/Uri.java\n@@ -1388,7 +1388,11 @@\n          * @param scheme name or {@code null} if this is a relative Uri\n          */\n         public Builder scheme(String scheme) {\n-            this.scheme \u003d scheme;\n+            if (scheme !\u003d null) {\n+                this.scheme \u003d scheme.replace(\"://\", \"\");\n+            } else {\n+                this.scheme \u003d null;\n+            }\n             return this;\n         }\n\ndiff --git a/core/tests/coretests/src/android/net/UriTest.java b/core/tests/coretests/src/android/net/UriTest.java\nindex 89632a4..8c130ee 100644\n--- a/core/tests/coretests/src/android/net/UriTest.java\n+++ b/core/tests/coretests/src/android/net/UriTest.java\n@@ -88,6 +88,16 @@\n         assertNull(u.getHost());\n     }\n\n+    @AsbSecurityTest(cveBugId \u003d 261721900)\n+    @SmallTest\n+    public void testSchemeSanitization() {\n+        Uri uri \u003d new\n[[[Result patch trimmed due to size. Decoded string size: 1417. Decoded string SHA1: f9ce831a369872ae9bfd9f50f01dd394682e0f3f.]]]\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:841ce92aa1b350c83148ef6fb57bfff617364e1a)\nMerged-In: Icab100bd4ae9b1c8245e6f891ad22101bda5eea5\nChange-Id: Icab100bd4ae9b1c8245e6f891ad22101bda5eea5\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_frameworks_base/commit/fea05c2596a97bf9ea331454d745d7f7706b472b"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_frameworks_base/commit/fea05c2596a97bf9ea331454d745d7f7706b472b"}]},"branch":"refs/heads/lineage-20.0"},"32ba2ef377de9df91f37575ee9dab8c88cd0f9a4":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2024-09-13 15:11:40.000000000","uploader":{"_account_id":15173,"name":"Kevin Haggerty","email":"haggertk@lineageos.org","username":"haggertk","avatars":[{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/258edfac858c1ce5f056ed4ca050a578.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"ref":"refs/changes/44/401144/2","fetch":{"anonymous http":{"url":"https://github.com/LineageOS/android_frameworks_base","ref":"refs/changes/44/401144/2","commands":{"Branch":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/2 \u0026\u0026 git checkout -b change-401144 FETCH_HEAD","Checkout":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/2","Reset To":"git fetch https://github.com/LineageOS/android_frameworks_base refs/changes/44/401144/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"8b1879ea680ccf1b6641725954fad6125fde93ea","subject":"Merge cherrypicks of [\u0027googleplex-android-review.googlesource.com/27155205\u0027, \u0027googleplex-android-review.googlesource.com/27266232\u0027, \u0027googleplex-android-review.googlesource.com/27318647\u0027, \u0027googleplex-android-review.googlesource.com/27198359\u0027, \u0027googleplex-android-review.googlesource.com/27416928\u0027, \u0027googleplex-android-review.googlesource.com/27158350\u0027, \u0027googleplex-android-review.googlesource.com/27212503\u0027] into security-aosp-tm-release.","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_frameworks_base/commit/8b1879ea680ccf1b6641725954fad6125fde93ea"}]}],"author":{"name":"Kiran Ramachandra","email":"kiranmr@google.com","date":"2024-05-30 21:21:12.000000000","tz":0},"committer":{"name":"Android Build Coastguard Worker","email":"android-build-coastguard-worker@google.com","date":"2024-07-10 22:16:33.000000000","tz":0},"subject":"DO NOT MERGE Ignore - Sanitized uri scheme by removing scheme delimiter","message":"DO NOT MERGE Ignore - Sanitized uri scheme by removing scheme delimiter\n\nInitially considered removing unsupported characters as per IANA guidelines, but this could break applications that use custom schemes with asterisks. Instead, opted to remove only the \"://\" to minimize disruption\n\nBug: 261721900\nTest: atest FrameworksCoreTests:android.net.UriTest\n\nNo-Typo-Check: The unit test is specifically written to test few cases, string \"http://https://\" is not a typo\n\nNOTE FOR REVIEWERS - original patch and result patch are not identical.\nPLEASE REVIEW CAREFULLY.\nDiffs between the patches:\n     @AsbSecurityTest(cveBugId \u003d 261721900)\n\u003e +    @SmallTest\n\u003e +    public void testSchemeSanitization() {\n\u003e +        Uri uri \u003d new Uri.Builder()\n\u003e +                .scheme(\"http://https://evil.com:/te:st/\")\n\u003e +                .authority(\"google.com\").path(\"one/way\").build();\n\u003e +        assertEquals(\"httphttpsevil.com:/te:st/\", uri.getScheme());\n\u003e +        assertEquals(\"httphttpsevil.com:/te:st/://google.com/one/way\", uri.toString());\n\u003e +    }\n\u003e +\n\nOriginal patch:\n diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java\nold mode 100644\nnew mode 100644\n--- a/core/java/android/net/Uri.java\n+++ b/core/java/android/net/Uri.java\n@@ -1388,7 +1388,11 @@\n          * @param scheme name or {@code null} if this is a relative Uri\n          */\n         public Builder scheme(String scheme) {\n-            this.scheme \u003d scheme;\n+            if (scheme !\u003d null) {\n+                this.scheme \u003d scheme.replace(\"://\", \"\");\n+            } else {\n+                this.scheme \u003d null;\n+            }\n             return this;\n         }\n\ndiff --git a/core/tests/coretests/src/android/net/UriTest.java b/core/tests/coretests/src/android/net/UriTest.java\nold mode 100644\nnew mode 100644\n--- a/core/tests/coretests/src/android/net/UriTest.java\n+++ b/core/tests/coretests/src/android/net/UriTest.java\n@@ -87,6 +87,16 @@\n         assertNull(u.getAuthority());\n         assertNull(u.getHost());\n     }\n+\n+    @AsbSecurityTest(cveBugId \u003d 261721900)\n+    @SmallTest\n+    public void testSc\n[[[Original patch trimmed due to size. Decoded string size: 1426. Decoded string SHA1: 55d69e9f854938457b2d98b18776898b16c2dd54.]]]\n\nResult patch:\n diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java\nindex 3da696a..f0262e9 100644\n--- a/core/java/android/net/Uri.java\n+++ b/core/java/android/net/Uri.java\n@@ -1388,7 +1388,11 @@\n          * @param scheme name or {@code null} if this is a relative Uri\n          */\n         public Builder scheme(String scheme) {\n-            this.scheme \u003d scheme;\n+            if (scheme !\u003d null) {\n+                this.scheme \u003d scheme.replace(\"://\", \"\");\n+            } else {\n+                this.scheme \u003d null;\n+            }\n             return this;\n         }\n\ndiff --git a/core/tests/coretests/src/android/net/UriTest.java b/core/tests/coretests/src/android/net/UriTest.java\nindex 89632a4..8c130ee 100644\n--- a/core/tests/coretests/src/android/net/UriTest.java\n+++ b/core/tests/coretests/src/android/net/UriTest.java\n@@ -88,6 +88,16 @@\n         assertNull(u.getHost());\n     }\n\n+    @AsbSecurityTest(cveBugId \u003d 261721900)\n+    @SmallTest\n+    public void testSchemeSanitization() {\n+        Uri uri \u003d new\n[[[Result patch trimmed due to size. Decoded string size: 1417. Decoded string SHA1: f9ce831a369872ae9bfd9f50f01dd394682e0f3f.]]]\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:841ce92aa1b350c83148ef6fb57bfff617364e1a)\nMerged-In: Icab100bd4ae9b1c8245e6f891ad22101bda5eea5\nChange-Id: Icab100bd4ae9b1c8245e6f891ad22101bda5eea5\n","web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_frameworks_base/commit/32ba2ef377de9df91f37575ee9dab8c88cd0f9a4"}],"resolve_conflicts_web_links":[{"name":"GitHub","tooltip":"Open in GitWeb","url":"https://github.com/LineageOS/android_frameworks_base/commit/32ba2ef377de9df91f37575ee9dab8c88cd0f9a4"}]},"branch":"refs/heads/lineage-20.0"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
