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
This commit is contained in:
@@ -2215,6 +2215,19 @@ public class WallpaperManagerService extends IWallpaperManager.Stub
|
|||||||
throw new IllegalArgumentException("padding must be positive: " + padding);
|
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);
|
final DisplayData wpdData = getDisplayDataOrCreate(displayId);
|
||||||
if (!padding.equals(wpdData.mPadding)) {
|
if (!padding.equals(wpdData.mPadding)) {
|
||||||
wpdData.mPadding.set(padding);
|
wpdData.mPadding.set(padding);
|
||||||
|
|||||||
Reference in New Issue
Block a user