summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-04-17 11:56:17 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-04-18 05:05:59 +0000
commit0826bf264c7308be1da045b79bdcc2cff8b7cb42 (patch)
tree43e10a11f78119cbe407b8a94328534c9008eec9 /vcl
parent15494c3dc504c693bd84a6217498f6bf17411855 (diff)
Resolves: rhbz#1086714 overlarge pixmap
(cherry picked from commit f31ac2405bbd0755fb14daa6cb84d7bb7d84c492) Conflicts: canvas/source/cairo/cairo_xlib_cairo.cxx vcl/unx/x11/xlimits.cxx Change-Id: I015308406a43e6b039059a5e35316d59745d0a48 Reviewed-on: https://gerrit.libreoffice.org/9083 Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/x11/xlimits.cxx13
1 files changed, 6 insertions, 7 deletions
diff --git a/vcl/unx/x11/xlimits.cxx b/vcl/unx/x11/xlimits.cxx
index 71b99831c4b4..b8509cbd2446 100644
--- a/vcl/unx/x11/xlimits.cxx
+++ b/vcl/unx/x11/xlimits.cxx
@@ -13,13 +13,12 @@
Pixmap limitXCreatePixmap(Display *display, Drawable d, unsigned int width, unsigned int height, unsigned int depth)
{
// The X protocol request CreatePixmap puts an upper bound
- // of 16 bit to the size. Beyond that there may be implementation
- // limits of the Xserver; which we should catch by a failed XCreatePixmap
- // call. However extra large values should be caught here since we'd run into
- // 16 bit truncation here without noticing.
- //
- // see, e.g. moz#424333
- if (width > SAL_MAX_INT16 || height > SAL_MAX_INT16)
+ // of 16 bit to the size. And in practice some drivers
+ // fall over with values close to the max.
+
+ // see, e.g. moz#424333, fdo#48961, rhbz#1086714
+ // we've a duplicate of this in canvas :-(
+ if (width > SAL_MAX_INT16-10 || height > SAL_MAX_INT16-10)
{
SAL_WARN("vcl", "overlarge pixmap: " << width << " x " << height);
return None;