aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util-linux/volume_id/util.c17
-rw-r--r--util-linux/volume_id/volume_id_internal.h12
2 files changed, 9 insertions, 20 deletions
diff --git a/util-linux/volume_id/util.c b/util-linux/volume_id/util.c
index 11ee0d52e..0e2d24be0 100644
--- a/util-linux/volume_id/util.c
+++ b/util-linux/volume_id/util.c
@@ -135,23 +135,8 @@ void volume_id_set_label_unicode16(struct volume_id *id, const uint8_t *buf, enu
135void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, enum uuid_format format) 135void volume_id_set_uuid(struct volume_id *id, const uint8_t *buf, enum uuid_format format)
136{ 136{
137 unsigned i; 137 unsigned i;
138 unsigned count = 0; 138 unsigned count = (format == UUID_DCE_STRING ? VOLUME_ID_UUID_SIZE : 4 << format);
139 139
140 switch (format) {
141 case UUID_DOS:
142 count = 4;
143 break;
144 case UUID_NTFS:
145 count = 8;
146 break;
147 case UUID_DCE:
148 count = 16;
149 break;
150 case UUID_DCE_STRING:
151 /* 36 is ok, id->uuid has one extra byte for NUL */
152 count = VOLUME_ID_UUID_SIZE;
153 break;
154 }
155// memcpy(id->uuid_raw, buf, count); 140// memcpy(id->uuid_raw, buf, count);
156// id->uuid_raw_len = count; 141// id->uuid_raw_len = count;
157 142
diff --git a/util-linux/volume_id/volume_id_internal.h b/util-linux/volume_id/volume_id_internal.h
index dd62df399..e26ebaab6 100644
--- a/util-linux/volume_id/volume_id_internal.h
+++ b/util-linux/volume_id/volume_id_internal.h
@@ -136,11 +136,15 @@ void FAST_FUNC free_volume_id(struct volume_id *id);
136#define cpu_to_be32(x) (x) 136#define cpu_to_be32(x) (x)
137#endif 137#endif
138 138
139/* volume_id_set_uuid(id,buf,fmt) assumes size of uuid buf
140 * by shifting: 4 << fmt, except for fmt == UUID_DCE_STRING.
141 * The constants below should match sizes.
142 */
139enum uuid_format { 143enum uuid_format {
140 UUID_DCE_STRING, 144 UUID_DOS = 0, /* 4 bytes */
141 UUID_DCE, 145 UUID_NTFS = 1, /* 8 bytes */
142 UUID_DOS, 146 UUID_DCE = 2, /* 16 bytes */
143 UUID_NTFS, 147 UUID_DCE_STRING = 3, /* 36 bytes (VOLUME_ID_UUID_SIZE) */
144}; 148};
145 149
146enum endian { 150enum endian {