Hi.

UUID in hashing parameters is not 20bytes always.

https://github.com/denydias/libhashab#libgpod-extension-to-make-it-talk-to-ipod-nano-6th-generation

On iPod nano 6g, uuid (mean FirewireGuid) 8bytes. So uuid contains bytes which isn't zero-filled.
Below is a patch.
Please check and include.


diff --git a/src/itdb_device.c b/src/itdb_device.c
index c72dd45..80995de 100644
--- a/src/itdb_device.c
+++ b/src/itdb_device.c
@@ -1899,7 +1899,7 @@ gboolean itdb_device_get_hex_uuid (const Itdb_Device *device, unsigned char uuid
         return FALSE;
     }
     memset (uuid, 0, 20);
-    result = itdb_hex_from_string (uuid, 20, uuid_str);
+    result = itdb_hex_from_string (uuid, strlen (uuid_str) / 2, uuid_str);
 
     return (result == 0);
 }

--
- Yasuhiro Matsumoto