commit 6ffc2fc6fcff4b4bfe41477f8c5ecacc17c82924
Author: Christophe Fergeau <[email protected]>
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2