From c10f046225cbe560d0310fa9163899151dbec7ab Mon Sep 17 00:00:00 2001 From: szaka Date: Tue, 1 Nov 2005 21:09:52 +0000 Subject: [PATCH] simplified ntfs_generate_guid() --- include/ntfs/security.h | 2 +- libntfs/security.c | 19 +++++++------------ ntfsprogs/mkntfs.c | 2 +- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/include/ntfs/security.h b/include/ntfs/security.h index 608429e0..a61aabd7 100644 --- a/include/ntfs/security.h +++ b/include/ntfs/security.h @@ -50,6 +50,6 @@ static __inline__ BOOL ntfs_sid_is_valid(const SID *sid) extern int ntfs_sid_to_mbs_size(const SID *sid); extern char *ntfs_sid_to_mbs(const SID *sid, char *sid_str, size_t sid_str_size); -extern GUID *ntfs_generate_guid(GUID *guid); +extern void ntfs_generate_guid(GUID *guid); #endif /* defined _NTFS_SECURITY_H */ diff --git a/libntfs/security.c b/libntfs/security.c index 5d1bb11a..e95b64a6 100644 --- a/libntfs/security.c +++ b/libntfs/security.c @@ -252,26 +252,21 @@ err_out: /** * ntfs_generate_guid - generatates a random current guid. - * @guid: a pointer to a GUID struct to hold the generated guid. + * @guid: [OUT] pointer to a GUID struct to hold the generated guid. * * perhaps not a very good random number generator though... - * - * Returns: The same pointer it was given as a parameter (guid). */ -GUID *ntfs_generate_guid(GUID *guid) +void ntfs_generate_guid(GUID *guid) { - int i; - static u8 array[16]; + u8 *p = (u8 *)guid; - for (i = 0; i < 16; i++) { - array[i] = (u8)(random() & 0xFF); + for (i = 0; i < sizeof(GUID); i++) { + p[i] = (u8)(random() & 0xFF); if (i == 7) - array[7] = (array[7] & 0x0F) | 0x40; + p[7] = (p[7] & 0x0F) | 0x40; if (i == 8) - array[8] = (array[8] & 0x3F) | 0x80; + p[8] = (p[8] & 0x3F) | 0x80; } - memcpy(guid, array, sizeof(guid)); - return guid; } diff --git a/ntfsprogs/mkntfs.c b/ntfsprogs/mkntfs.c index 9e3e3848..6470ffc7 100644 --- a/ntfsprogs/mkntfs.c +++ b/ntfsprogs/mkntfs.c @@ -4202,7 +4202,7 @@ static void create_file_volume(MFT_RECORD *m, MFT_REF root_ref, VOLUME_FLAGS fl) } if (!err && vol->major_ver>=3) { volume_obj_id=(OBJECT_ID_ATTR*)calloc(1,0x10); - volume_obj_id->object_id = *ntfs_generate_guid(&volume_obj_id->object_id); + ntfs_generate_guid(&volume_obj_id->object_id); err = add_attr_object_id(m, volume_obj_id, 0x10); } if (!err)