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
This commit is contained in:
Santiago Etchebehere
2021-12-03 10:50:10 -08:00
parent b77e0a0811
commit 72210c4940

View File

@@ -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);