[gnome-logs] Fix crash when tokenizing search string
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-logs] Fix crash when tokenizing search string
- Date: Tue, 22 Sep 2015 10:44:08 +0000 (UTC)
commit 5e18cf0c9ca2c3146e7a58bd0ccc42386e1c4290
Author: Jonathan Kang <jonathan121537 gmail com>
Date: Mon Sep 21 16:05:50 2015 +0800
Fix crash when tokenizing search string
https://bugzilla.gnome.org/show_bug.cgi?id=755327
src/gl-eventviewlist.c | 31 +++++++++++++++++++++++++++----
1 files changed, 27 insertions(+), 4 deletions(-)
---
diff --git a/src/gl-eventviewlist.c b/src/gl-eventviewlist.c
index 614d0e8..46f55e8 100644
--- a/src/gl-eventviewlist.c
+++ b/src/gl-eventviewlist.c
@@ -127,8 +127,7 @@ tokenize_search_string (gchar *search_text)
{
break;
}
-
- if (scanner->token == '+')
+ else if (scanner->token == '+')
{
g_ptr_array_add (token_array, g_strdup ("+"));
@@ -143,7 +142,17 @@ tokenize_search_string (gchar *search_text)
field_name = NULL;
}
}
- else
+ else if (scanner->token == G_TOKEN_INT)
+ {
+ field_name = g_strdup_printf ("%lu", scanner->value.v_int);
+ g_ptr_array_add (token_array, field_name);
+ }
+ else if (scanner->token == G_TOKEN_FLOAT)
+ {
+ field_name = g_strdup_printf ("%g", scanner->value.v_float);
+ g_ptr_array_add (token_array, field_name);
+ }
+ else if (scanner->token == G_TOKEN_IDENTIFIER)
{
if (token_array->len != 0)
{
@@ -153,9 +162,23 @@ tokenize_search_string (gchar *search_text)
field_name = g_strdup (scanner->value.v_identifier);
g_ptr_array_add (token_array, field_name);
}
+ else
+ {
+ field_name = NULL;
+ }
g_scanner_get_next_token (scanner);
- if (scanner->value.v_identifier != NULL)
+ if (scanner->token == G_TOKEN_INT)
+ {
+ field_value = g_strdup_printf ("%lu", scanner->value.v_int);
+ g_ptr_array_add (token_array, field_value);
+ }
+ else if (scanner->token == G_TOKEN_FLOAT)
+ {
+ field_value = g_strdup_printf ("%g", scanner->value.v_float);
+ g_ptr_array_add (token_array, field_value);
+ }
+ else if (scanner->token == G_TOKEN_IDENTIFIER)
{
field_value = g_strdup (scanner->value.v_identifier);
g_ptr_array_add (token_array, field_value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]