summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
9270e08)
In my scenario, the ntfs prober did *not* detect the presence of a
ntfs filesystem (i.e. vol_id --probe-all returned *only* ext3).
However, if you examine the source of the ntfs prober, it overwrites
the uuid field of the volume_id object long before it actually
decides there's a valid filesystem there - this resulted in vol_id
returning the rather bizarre combination of type=ext3, but a uuid
populated by the ntfs prober.
https://bugs.edge.launchpad.net/ubuntu/+source/udev/+bug/337015
dnl /* libvolume_id version */
VOLID_LT_CURRENT=1
dnl /* libvolume_id version */
VOLID_LT_CURRENT=1
VOLID_LT_AGE=0
AC_SUBST(VOLID_LT_CURRENT)
AC_SUBST(VOLID_LT_REVISION)
VOLID_LT_AGE=0
AC_SUBST(VOLID_LT_CURRENT)
AC_SUBST(VOLID_LT_REVISION)
int volume_id_probe_ntfs(struct volume_id *id, uint64_t off, uint64_t size)
{
int volume_id_probe_ntfs(struct volume_id *id, uint64_t off, uint64_t size)
{
+ uint8_t volume_serial[8];
unsigned int sector_size;
unsigned int cluster_size;
uint64_t mft_cluster;
unsigned int sector_size;
unsigned int cluster_size;
uint64_t mft_cluster;
if (memcmp(ns->oem_id, "NTFS", 4) != 0)
return -1;
if (memcmp(ns->oem_id, "NTFS", 4) != 0)
return -1;
- volume_id_set_uuid(id, ns->volume_serial, 0, UUID_64BIT_LE);
+ memcpy(volume_serial, ns->volume_serial, sizeof(volume_serial));
sector_size = le16_to_cpu(ns->bytes_per_sector);
if (sector_size < 0x200)
sector_size = le16_to_cpu(ns->bytes_per_sector);
if (sector_size < 0x200)
+ volume_id_set_uuid(id, volume_serial, 0, UUID_64BIT_LE);
volume_id_set_usage(id, VOLUME_ID_FILESYSTEM);
id->type = "ntfs";
/* we think this is ntfs, but we make sure no other signatures are found */
volume_id_set_usage(id, VOLUME_ID_FILESYSTEM);
id->type = "ntfs";
/* we think this is ntfs, but we make sure no other signatures are found */