]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
libuuid: return correct value for uuid_generate_time_safe
authorRomain Bouvier <skunnyk@alteroot.org>
Wed, 17 Jun 2015 15:59:18 +0000 (15:59 +0000)
committerKarel Zak <kzak@redhat.com>
Thu, 18 Jun 2015 10:12:16 +0000 (12:12 +0200)
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 <skunnyk@alteroot.org>
Signed-off-by: Andreas Henriksson <andreas@fatal.se>
libuuid/src/gen_uuid.c

index eb793391c493701818e1da03441bb0d1b351bbc1..2c5b955642759c8c92af23e5ca9afe60ebe06613 100644 (file)
@@ -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);