summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2022-03-28 01:02:52 +0600
committerHiltjo Posthuma <hiltjo@codemadness.org>2022-04-16 16:21:01 +0200
commite4827b0c4048718ab06670cf60ef68d028fe7fc4 (patch)
treea891006adb7acf63b8c9e4f17ce71ae1baa403ed
parente73651f12a406629778f02d8e5acbe2caec0dfc2 (diff)
downloaddmenu-e4827b0c4048718ab06670cf60ef68d028fe7fc4.tar.gz
drw_text: don't segfault when called with 0 width
this patch just rejects *any* 0 width draws, which is surely an error by the caller. this also guards against cases where the width is too small for the ellipsis to fit, so ellipsis_w will remain 0. reported by Bakkeby <bakkeby@gmail.com>
-rw-r--r--drw.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drw.c b/drw.c
index a50c9ee..2f3a5df 100644
--- a/drw.c
+++ b/drw.c
@@ -267,7 +267,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp
enum { nomatches_len = 64 };
static struct { long codepoint[nomatches_len]; unsigned int idx; } nomatches;
- if (!drw || (render && !drw->scheme) || !text || !drw->fonts)
+ if (!drw || (render && (!drw->scheme || !w)) || !text || !drw->fonts)
return 0;
if (!render) {