diff options
author | Peter Wu <peter@lekensteyn.nl> | 2015-06-25 02:05:30 +0200 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-06-25 15:38:45 +0000 |
commit | 3f5d183a44cada18eea7969fd8cc60f8e8781b26 (patch) | |
tree | 962bb8a20973711a825153734cf20d069b5a5ef4 /ui/gtk | |
parent | fe6ece9689d54e64e9f1fdc74170da343db16aff (diff) |
Stop using atof/strtod (fixes column sorting of float types)
atof is locale-dependent. In locales such as Swedish, German and Dutch,
the dot is a thousand separator, resulting in wrong conversions for
floats.
While at it, make the mate dissector also be independent of locale.
Blacklist atof in checkAPIs. Lemon is still using strtod, but that is
not our problem for now.
Bug: 11297
Bug: 8964
Change-Id: I6fe3e45eb1d6d95d41aa4f3af1f81a6204a60c63
Reviewed-on: https://code.wireshark.org/review/9116
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/gtk')
-rw-r--r-- | ui/gtk/hostlist_table.c | 4 | ||||
-rw-r--r-- | ui/gtk/packet_list_store.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/ui/gtk/hostlist_table.c b/ui/gtk/hostlist_table.c index 7913acc108..39845fa44c 100644 --- a/ui/gtk/hostlist_table.c +++ b/ui/gtk/hostlist_table.c @@ -182,12 +182,12 @@ hostlist_sort_column(GtkTreeModel *model, gtk_tree_model_get(model, b, data_column, &text2, -1); if (text1) { - loc1 = atof(text1); + loc1 = g_ascii_strtod(text1, NULL); g_free(text1); } if (text2) { - loc2 = atof(text2); + loc2 = g_ascii_strtod(text2, NULL); g_free(text2); } CMP_INT(loc1, loc2); diff --git a/ui/gtk/packet_list_store.c b/ui/gtk/packet_list_store.c index cddc2778aa..dbb511ae43 100644 --- a/ui/gtk/packet_list_store.c +++ b/ui/gtk/packet_list_store.c @@ -943,8 +943,8 @@ packet_list_compare_custom(gint sort_id, gint text_sort_id, PacketListRecord *a, (hfi->type == FT_RELATIVE_TIME))) { /* Attempt to convert to numbers */ - double num_a = atof(a->col_text[text_sort_id]); - double num_b = atof(b->col_text[text_sort_id]); + double num_a = g_ascii_strtod(a->col_text[text_sort_id], NULL); + double num_b = g_ascii_strtod(b->col_text[text_sort_id], NULL); if (num_a < num_b) return -1; |