From 1b066f6fcbba2323b64963e19873def0998c83d9 Mon Sep 17 00:00:00 2001 From: Eric Koegel Date: Fri, 21 Dec 2012 09:30:52 +0300 Subject: [PATCH] Fixed an overflow when comparing filenames with large numbers in them. (Bug #9485) --- src/image_list.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/image_list.c b/src/image_list.c index 46977b1..f4c32fd 100644 --- a/src/image_list.c +++ b/src/image_list.c @@ -1363,8 +1363,8 @@ cb_rstto_image_list_image_name_compare_func (RsttoFile *a, RsttoFile *b) const gchar *bp = b_base; gint result = 0; - guint a_num = 0; - guint b_num = 0; + guint64 a_num = 0; + guint64 b_num = 0; /* try simple (fast) ASCII comparison first */ for (;; ++ap, ++bp) @@ -1404,8 +1404,8 @@ cb_rstto_image_list_image_name_compare_func (RsttoFile *a, RsttoFile *b) */ if (g_ascii_isdigit (ac) && g_ascii_isdigit (bc)) { - a_num = strtoul (ap, NULL, 10); - b_num = strtoul (bp, NULL, 10); + a_num = strtoull (ap, NULL, 10); + b_num = strtoull (bp, NULL, 10); if (a_num < b_num) result = -1; @@ -1418,8 +1418,8 @@ cb_rstto_image_list_image_name_compare_func (RsttoFile *a, RsttoFile *b) g_ascii_isdigit (*(ap -1)) && g_ascii_isdigit (*(bp -1)) ) { - a_num = strtoul (ap-1, NULL, 10); - b_num = strtoul (bp-1, NULL, 10); + a_num = strtoull (ap-1, NULL, 10); + b_num = strtoull (bp-1, NULL, 10); if (a_num < b_num) result = -1; -- 1.7.10.4