From 6ceae1b5bf6f16ef548bc6aebdda6d2aa5c4c26c Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Thu, 1 Feb 2001 01:50:49 +0000 Subject: [PATCH] Check bounds when setting selection. (#7302) Wed Jan 31 20:33:35 2001 Owen Taylor * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds when setting selection. (#7302) --- ChangeLog | 5 +++++ ChangeLog.pre-2-0 | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-2 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtkentry.c | 8 +++++--- 8 files changed, 40 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c61b6b6dcf..90618e0817 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Wed Jan 31 20:33:35 2001 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_selection): Check bounds + when setting selection. (#7302) + Thu Feb 1 02:26:18 2001 Tim Janik * gtk/Makefile.am ($(srcdir)/gtkmarshal.c): avoid regeneration diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 25e9cef7c9..ea910a2aca 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -2213,14 +2213,16 @@ gtk_entry_set_selection (GtkEditable *editable, gint start, gint end) { + gint length = GTK_ENTRY (editable)->text_length; + g_return_if_fail (editable != NULL); g_return_if_fail (GTK_IS_ENTRY (editable)); if (end < 0) - end = GTK_ENTRY (editable)->text_length; + end = length; - editable->selection_start_pos = start; - editable->selection_end_pos = end; + editable->selection_start_pos = CLAMP (start, 0, length); + editable->selection_end_pos = MIN (end, length); gtk_entry_queue_draw (GTK_ENTRY (editable)); }