screenshot: Extend ScreenshotArea parameter validation
We currently only ensure that width and height are positive, so it is still possible to pass in values that don't make any sense at all (which may even result in a crash when exceeding limits imposed by X11). There is nothing to screenshot outside the actual screen area, so restrict the parameters to that. https://bugzilla.gnome.org/show_bug.cgi?id=699752
This commit is contained in:
parent
cac32dfe2a
commit
3ac7bf874c
@ -77,7 +77,9 @@ const ScreenshotService = new Lang.Class({
|
|||||||
|
|
||||||
ScreenshotAreaAsync : function (params, invocation) {
|
ScreenshotAreaAsync : function (params, invocation) {
|
||||||
let [x, y, width, height, flash, filename, callback] = params;
|
let [x, y, width, height, flash, filename, callback] = params;
|
||||||
if (height <= 0 || width <= 0) {
|
if (x < 0 || y < 0 ||
|
||||||
|
width <= 0 || height <= 0 ||
|
||||||
|
x + width > global.screen_width || y + height > global.screen_height) {
|
||||||
invocation.return_error_literal(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
|
invocation.return_error_literal(Gio.IOErrorEnum, Gio.IOErrorEnum.CANCELLED,
|
||||||
"Invalid params");
|
"Invalid params");
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user