commit 6ffc2fc6fcff4b4bfe41477f8c5ecacc17c82924
Author: Christophe Fergeau <cferg...@mandriva.com>
Date:   Thu Oct 22 01:45:20 2009 +0200

    make sure we don't try to write unknown checksum types

 src/itdb_device.c |    9 ++++++++-
 src/itdb_device.h |    1 +
 2 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/src/itdb_device.c b/src/itdb_device.c
index ad671c0..0b8f64e 100644
--- a/src/itdb_device.c
+++ b/src/itdb_device.c
@@ -1717,12 +1717,16 @@ static ItdbChecksumType itdb_device_get_checksum_type 
(const Itdb_Device *device
        gint db_version;
        db_version = itdb_sysinfo_properties_get_db_version 
(device->sysinfo_extended);
        switch (db_version) {
+           case 0:
+           case 1:
+           case 2:
+               return ITDB_CHECKSUM_NONE;
            case 3:
                return ITDB_CHECKSUM_HASH58;
            case 4:
                return ITDB_CHECKSUM_HASH72;
            default:
-               return ITDB_CHECKSUM_NONE;
+               return ITDB_CHECKSUM_UNKNOWN;
        }
     } else {
        const Itdb_IpodInfo *info;
@@ -1836,6 +1840,9 @@ G_GNUC_INTERNAL gboolean itdb_device_write_checksum 
(Itdb_Device *device,
            return itdb_device_write_hash58 (device, itdb_data, itdb_len, 
error);
        case ITDB_CHECKSUM_HASH72:
            return itdb_hash72_write_hash (device, itdb_data, itdb_len, error);
+       case ITDB_CHECKSUM_UNKNOWN:
+            g_set_error (error, 0, -1, "Unsupported checksum type");
+           return FALSE;
     }  
     g_assert_not_reached ();
 }
diff --git a/src/itdb_device.h b/src/itdb_device.h
index 518ca93..557f417 100644
--- a/src/itdb_device.h
+++ b/src/itdb_device.h
@@ -76,6 +76,7 @@ enum _ItdbThumbFormat
 
 typedef enum _ItdbChecksumType ItdbChecksumType;
 enum _ItdbChecksumType {
+    ITDB_CHECKSUM_UNKNOWN      = -1,
     ITDB_CHECKSUM_NONE         = 0,
     ITDB_CHECKSUM_HASH58       = 1,
     ITDB_CHECKSUM_HASH72       = 2

------------------------------------------------------------------------------
Return on Information:
Google Enterprise Search pays you back
Get the facts.
http://p.sf.net/sfu/google-dev2dev
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to