fix possible overflow 3a60b195
Connor Lane Smith · 2011-05-16 23:35 1 file(s) · +4 −4
dmenu.c +4 −4
31 31
static void insert(const char *str, ssize_t n);
32 32
static void keypress(XKeyEvent *ev);
33 33
static void match(Bool sub);
34 -
static size_t nextrune(int incr);
34 +
static size_t nextrune(int inc);
35 35
static void paste(void);
36 36
static void readstdin(void);
37 37
static void run(void);
426 426
}
427 427
428 428
size_t
429 -
nextrune(int incr) {
430 -
	size_t n, len = strlen(text);
429 +
nextrune(int inc) {
430 +
	ssize_t n;
431 431
432 -
	for(n = cursor + incr; n < len && (text[n] & 0xc0) == 0x80; n += incr);
432 +
	for(n = cursor + inc; n + inc >= 0 && (text[n] & 0xc0) == 0x80; n += inc);
433 433
	return n;
434 434
}
435 435