-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 There is an integer overflow in the simplewindow code. If you try to create a window with e.g. height = 50 and border_width = 30, this would create a X window with real_height = height - 2 * border_width = (uint_16_t) -10. This caused a BadAlloc error reply which is hard to trace down.
With this patch applied, simplewindow_init() now lowers the border_width of the new window to avoid this integer overflow and additionally prints a error on stderr. This is still not good, but at least it's better than a BadAlloc error. This was found via the following lua fragment: naughty.config.border_width = 50 naughty.notify({ text = "test" }) Signed-off-by: Uli Schlachter <psyc...@znc.in> - --- swindow.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/swindow.c b/swindow.c index 487ad8e..423d174 100644 - --- a/swindow.c +++ b/swindow.c @@ -83,6 +83,20 @@ simplewindow_init(simple_window_t *sw, const uint32_t gc_mask = XCB_GC_FOREGROUND | XCB_GC_BACKGROUND; const uint32_t gc_values[2] = { s->black_pixel, s->white_pixel }; + if (MIN(geometry.width, geometry.height) <= 2 * border_width) + { + /* The border_width is so big that there would be no space left in the + * window. This now adjusts border_width so that there is at least 1px + * space inside the window, except when we were already called with a + * width/height of 0, in which case this will likely lead to a X + * protocol error. + */ + border_width = MIN(geometry.width, geometry.height) / 2; + if (border_width > 0) + border_width--; + fprintf(stderr, "error: Attempted to create a window with too large border_width / too small size\n"); + } + sw->geometry.x = geometry.x; sw->geometry.y = geometry.y; sw->geometry.width = geometry.width; - -- 1.6.2 - -- "Do you know that books smell like nutmeg or some spice from a foreign land?" -- Faber in Fahrenheit 451 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkm/yEgACgkQABixOSrV998jAQCg1Un3JbyQPOLTiEazEJIltN4d IjUAnAknOWz+/eaibHaCObWTqGgNfrof =uiIu -----END PGP SIGNATURE----- -- To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.