[easytag] Use g_format_size() instead of custom code



commit a220a6d4c0bd51bd8e532ec863af8ead299de8af
Author: David King <amigadave amigadave com>
Date:   Tue Feb 11 19:25:33 2014 +0000

    Use g_format_size() instead of custom code
    
    Replace Convert_Size() and Convert_Size_1() with g_format_size() to
    avoid potential invalid memory accesses.
    
    Found with Coverity (CID 1163338 and CID 1163339).

 src/cddb.c               |    2 +-
 src/et_core.c            |    4 +-
 src/flac_header.c        |    4 +-
 src/misc.c               |   48 ----------------------------------------------
 src/misc.h               |    2 -
 src/monkeyaudio_header.c |    4 +-
 src/mp4_header.c         |    4 +-
 src/mpeg_header.c        |    4 +-
 src/musepack_header.c    |    4 +-
 src/ogg_header.c         |    4 +-
 src/picture.c            |    2 +-
 src/wavpack_header.c     |    4 +-
 12 files changed, 18 insertions(+), 68 deletions(-)
---
diff --git a/src/cddb.c b/src/cddb.c
index 2878b5c..fc12dca 100644
--- a/src/cddb.c
+++ b/src/cddb.c
@@ -1785,7 +1785,7 @@ Cddb_Write_Result_To_File (gint socket_id, gulong *bytes_read_total)
             //g_print("\nLine : %lu : %s\n",bytes_read,cddb_out);
 
             // Display message
-            size_str = Convert_Size_1(*bytes_read_total);
+            size_str =  g_format_size (*bytes_read_total);
             msg = g_strdup_printf(_("Receiving data (%s)…"),size_str);
             gtk_statusbar_push(GTK_STATUSBAR(CddbStatusBar),CddbStatusBarContext,msg);
             g_free(msg);
diff --git a/src/et_core.c b/src/et_core.c
index e34de86..a803b9c 100644
--- a/src/et_core.c
+++ b/src/et_core.c
@@ -3141,8 +3141,8 @@ ET_Display_File_Info_To_UI(ET_File_Info *ETFileInfo)
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);
diff --git a/src/flac_header.c b/src/flac_header.c
index 3293b42..535f7b0 100644
--- a/src/flac_header.c
+++ b/src/flac_header.c
@@ -218,8 +218,8 @@ gboolean Flac_Header_Display_File_Info_To_UI (gchar *filename_utf8, ET_File_Info
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);
diff --git a/src/misc.c b/src/misc.c
index c1c5ab6..7632cf4 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1036,54 +1036,6 @@ gchar *Check_If_Executable_Exists (const gchar *program)
 
 }
 
-
-
-/*
- * The returned string must be freed after use
- */
-gchar *
-Convert_Size (gsize size)
-{
-    /* Translators: file size (bytes, kilobytes, megabytes, gigabytes,
-     * terabytes). */
-    const gchar *units_tab[] = { N_("B"), N_("kB"), N_("MB"), N_("GB"), N_("TB")};
-    gsize i;
-
-    for (i = 0; size / 1024 && i < G_N_ELEMENTS (units_tab); i++)
-    {
-        size /= 1024;
-    }
-
-    return g_strdup_printf ("%.1" G_GSIZE_FORMAT " %s", size, _(units_tab[i]));
-}
-
-/*
- * Same as before except that if value in MB, we display 3 numbers after the
- * comma. The returned string must be freed after use.
- */
-gchar *
-Convert_Size_1 (gsize size)
-{
-    /* Translators: file size (bytes, kilobytes, megabytes, gigabytes,
-     * terabytes). */
-    const gchar *units_tab[] = { N_("B"), N_("kB"), N_("MB"), N_("GB"), N_("TB")};
-    guint i;
-
-    for (i = 0; size / 1024 && i < G_N_ELEMENTS (units_tab); i++)
-    {
-        size /= 1024;
-    }
-
-    /* FIXME: Separator should be taken from the locale. */
-    /* For large values : display 3 number afer the separator. */
-    if (i >= 2)
-        return g_strdup_printf ("%.3" G_GSIZE_FORMAT " %s", size,
-                                _(units_tab[i]));
-    else
-        return g_strdup_printf ("%.1" G_GSIZE_FORMAT " %s", size,
-                                _(units_tab[i]));
-}
-
 /*
  * Convert a series of seconds into a readable duration
  * Remember to free the string that is returned
diff --git a/src/misc.h b/src/misc.h
index 3304e9b..0aa843f 100644
--- a/src/misc.h
+++ b/src/misc.h
@@ -80,8 +80,6 @@ void Run_Audio_Player_Using_Selection (void);
 void Run_Audio_Player_Using_Browser_Artist_List (void);
 void Run_Audio_Player_Using_Browser_Album_List  (void);
 
-gchar *Convert_Size (gsize size);
-gchar *Convert_Size_1 (gsize size);
 gchar *Convert_Duration (gulong duration);
 
 goffset et_get_file_size (const gchar *filename);
diff --git a/src/monkeyaudio_header.c b/src/monkeyaudio_header.c
index 04bce1f..30f9122 100644
--- a/src/monkeyaudio_header.c
+++ b/src/monkeyaudio_header.c
@@ -101,8 +101,8 @@ gboolean Mac_Header_Display_File_Info_To_UI (gchar *filename_utf8, ET_File_Info
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);
diff --git a/src/mp4_header.c b/src/mp4_header.c
index 6ff90d0..f9952a2 100644
--- a/src/mp4_header.c
+++ b/src/mp4_header.c
@@ -151,8 +151,8 @@ gboolean Mp4_Header_Display_File_Info_To_UI(gchar *filename, ET_File_Info *ETFil
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     if (size)  g_free(size);
diff --git a/src/mpeg_header.c b/src/mpeg_header.c
index 9cd34b9..ba46ff4 100644
--- a/src/mpeg_header.c
+++ b/src/mpeg_header.c
@@ -219,8 +219,8 @@ gboolean Mpeg_Header_Display_File_Info_To_UI(gchar *filename_utf8, ET_File_Info
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);
diff --git a/src/musepack_header.c b/src/musepack_header.c
index 339e85e..84f6be3 100644
--- a/src/musepack_header.c
+++ b/src/musepack_header.c
@@ -104,8 +104,8 @@ gboolean Mpc_Header_Display_File_Info_To_UI (gchar *filename_utf8, ET_File_Info
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);
diff --git a/src/ogg_header.c b/src/ogg_header.c
index 7fbd397..915cb3d 100644
--- a/src/ogg_header.c
+++ b/src/ogg_header.c
@@ -414,8 +414,8 @@ gboolean Ogg_Header_Display_File_Info_To_UI (gchar *filename, ET_File_Info *ETFi
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);
diff --git a/src/picture.c b/src/picture.c
index 557fadb..646ed0e 100644
--- a/src/picture.c
+++ b/src/picture.c
@@ -901,7 +901,7 @@ Picture_Info (Picture *pic)
         desc = "";
 
     type = Picture_Type_String(pic->type);
-    size_str = Convert_Size_1((gfloat)pic->size);
+    size_str = g_format_size (pic->size);
 
     s = g_string_new(0);
     // Behaviour following the tag type...
diff --git a/src/wavpack_header.c b/src/wavpack_header.c
index 61da89e..3a0fb3a 100644
--- a/src/wavpack_header.c
+++ b/src/wavpack_header.c
@@ -91,8 +91,8 @@ gboolean Wavpack_Header_Display_File_Info_To_UI(gchar *filename_utf8, ET_File_In
     g_free(text);
 
     /* Size */
-    size  = Convert_Size(ETFileInfo->size);
-    size1 = Convert_Size(ETCore->ETFileDisplayedList_TotalSize);
+    size  = g_format_size (ETFileInfo->size);
+    size1 = g_format_size (ETCore->ETFileDisplayedList_TotalSize);
     text  = g_strdup_printf("%s (%s)",size,size1);
     gtk_label_set_text(GTK_LABEL(SizeValueLabel),text);
     g_free(size);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]