diff options
author | Padraig O'Briain <padraigo@src.gnome.org> | 2002-02-20 17:18:01 +0000 |
---|---|---|
committer | Padraig O'Briain <padraigo@src.gnome.org> | 2002-02-20 17:18:01 +0000 |
commit | e1695d4f2936c97e935ef5c8ef911db731077558 (patch) | |
tree | 285a05abf2e77fc33631718f76b67cf5e201bbcf /atk/atktext.c | |
parent | a82a83e93096799f6b535e38c122e16f88e4baeb (diff) | |
download | atk-e1695d4f2936c97e935ef5c8ef911db731077558.tar.gz |
Add check for offset being negative in functins which have offset
* atk/atktext.c:
Add check for offset being negative in functins which have offset
parameter and return immediately if so.
Diffstat (limited to 'atk/atktext.c')
-rwxr-xr-x | atk/atktext.c | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/atk/atktext.c b/atk/atktext.c index ff811bb..4d8378c 100755 --- a/atk/atktext.c +++ b/atk/atktext.c @@ -157,6 +157,9 @@ atk_text_get_text (AtkText *text, iface = ATK_TEXT_GET_IFACE (text); + if (start_offset < 0 || end_offset < 0) + return NULL; + if (iface->get_text) return (*(iface->get_text)) (text, start_offset, end_offset); else @@ -180,6 +183,9 @@ atk_text_get_character_at_offset (AtkText *text, g_return_val_if_fail (ATK_IS_TEXT (text), (gunichar) 0); + if (offset < 0) + return (gunichar) 0; + iface = ATK_TEXT_GET_IFACE (text); if (iface->get_character_at_offset) @@ -258,6 +264,9 @@ atk_text_get_text_after_offset (AtkText *text, else real_end_offset = &local_end_offset; + if (offset < 0) + return NULL; + iface = ATK_TEXT_GET_IFACE (text); if (iface->get_text_after_offset) @@ -343,6 +352,9 @@ atk_text_get_text_at_offset (AtkText *text, else real_end_offset = &local_end_offset; + if (offset < 0) + return NULL; + iface = ATK_TEXT_GET_IFACE (text); if (iface->get_text_at_offset) @@ -426,6 +438,9 @@ atk_text_get_text_before_offset (AtkText *text, else real_end_offset = &local_end_offset; + if (offset < 0) + return NULL; + iface = ATK_TEXT_GET_IFACE (text); if (iface->get_text_before_offset) @@ -502,17 +517,18 @@ atk_text_get_character_extents (AtkText *text, else real_height = &local_height; + *real_x = 0; + *real_y = 0; + *real_width = 0; + *real_height = 0; + + if (offset < 0) + return; + iface = ATK_TEXT_GET_IFACE (text); if (iface->get_character_extents) (*(iface->get_character_extents)) (text, offset, real_x, real_y, real_width, real_height, coords); - else - { - *real_x = 0; - *real_y = 0; - *real_width = 0; - *real_height = 0; - } } /** @@ -553,6 +569,9 @@ atk_text_get_run_attributes (AtkText *text, else real_end_offset = &local_end_offset; + if (offset < 0) + return NULL; + iface = ATK_TEXT_GET_IFACE (text); if (iface->get_run_attributes) |