diff options
| author | 2021-12-03 10:50:10 -0800 | |
|---|---|---|
| committer | 2022-03-24 21:36:19 +0000 | |
| commit | 72210c49405570dfb3b79220536ccb9e102b7f8c (patch) | |
| tree | 040311ff8a3fd1aa60746aebdbdfec03918e6f58 | |
| parent | b77e0a0811bbd6a67aae873d84ea120af36ec404 (diff) | |
Disallow too large display padding for wallpaper
To avoid a potential vulnerability, don't allow padding
with width or height larger than the maximum screen width.
Bug: 204316511
Test: added WallpaperManagerTest
Change-Id: I471fb3546bdd2f9aa07dd091fe841b2bc5c484d6
Merged-In: I471fb3546bdd2f9aa07dd091fe841b2bc5c484d6
| -rw-r--r-- | services/core/java/com/android/server/wallpaper/WallpaperManagerService.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index eddb5e977fa2..15a41f6b3d2c 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -2267,6 +2267,19 @@ public class WallpaperManagerService extends IWallpaperManager.Stub throw new IllegalArgumentException("padding must be positive: " + padding); } + int maxSize = getMaximumSizeDimension(displayId); + + final int paddingWidth = padding.left + padding.right; + final int paddingHeight = padding.top + padding.bottom; + if (paddingWidth > maxSize) { + throw new IllegalArgumentException("padding width " + paddingWidth + + " exceeds max width " + maxSize); + } + if (paddingHeight > maxSize) { + throw new IllegalArgumentException("padding height " + paddingHeight + + " exceeds max height " + maxSize); + } + final DisplayData wpdData = getDisplayDataOrCreate(displayId); if (!padding.equals(wpdData.mPadding)) { wpdData.mPadding.set(padding); |