From c46123b813b9ee6a9f073c8bb4f09708620961ed Mon Sep 17 00:00:00 2001 From: jsorg71 Date: Wed, 21 Jan 2009 17:08:55 +0000 Subject: [PATCH] fix overflow when typing in edit on login screen --- xrdp/xrdp_bitmap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xrdp/xrdp_bitmap.c b/xrdp/xrdp_bitmap.c index b3d7162b..a2faf4b4 100644 --- a/xrdp/xrdp_bitmap.c +++ b/xrdp/xrdp_bitmap.c @@ -1247,6 +1247,8 @@ xrdp_bitmap_def_proc(struct xrdp_bitmap* self, int msg, int shift; int ext; int scan_code; + int num_bytes; + int num_chars; struct xrdp_bitmap* b; struct xrdp_bitmap* focus_out_control; @@ -1431,7 +1433,9 @@ xrdp_bitmap_def_proc(struct xrdp_bitmap* self, int msg, (param2, scan_code, self->wm->keys, self->wm->caps_lock, self->wm->num_lock, self->wm->scroll_lock, &(self->wm->keymap)); - if (c >= 32) + num_chars = g_mbstowcs(0, self->caption1, 0); + num_bytes = g_strlen(self->caption1); + if ((c >= 32) && (num_chars < 127) && (num_bytes < 250)) { add_char_at(self->caption1, 255, c, self->edit_pos); self->edit_pos++;