From: Romain Bouvier Date: Wed, 17 Jun 2015 15:59:18 +0000 (+0000) Subject: libuuid: return correct value for uuid_generate_time_safe X-Git-Tag: v2.27-rc1~136 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c893f5e462265b59cd0c27bd38b6355e799a302a;p=thirdparty%2Futil-linux.git libuuid: return correct value for uuid_generate_time_safe Make return value consistent for consecutive calls. If you call uuid_generate_time_safe, it should always return -1 if it can't guarantee uniqueness. Without this patch, on consecutive calls where it can't guarantee uniqueness, the first call returns -1, but later calls return 0. Reported-by: Romain Bouvier Signed-off-by: Andreas Henriksson --- diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c index eb793391c4..2c5b955642 100644 --- a/libuuid/src/gen_uuid.c +++ b/libuuid/src/gen_uuid.c @@ -227,6 +227,9 @@ static int get_clock(uint32_t *clock_high, uint32_t *clock_low, int len; int ret = 0; + if (state_fd == -1) + ret = -1; + if (state_fd == -2) { save_umask = umask(0); state_fd = open(LIBUUID_CLOCK_FILE, O_RDWR|O_CREAT|O_CLOEXEC, 0660);