Package: uuid Version: 1.6.2-1.5+b11 Severity: normal Dear Maintainer,
* What led up to the situation? I ran `uuid -d 00000000-0000-1100-a000-000000000000` and noticed that the time content was strangely formatted with a dot where a digit should be: encode: STR: 00000000-0000-1100-a000-000000000000 SIV: 80291759423830037102592 decode: variant: DCE 1.1, ISO/IEC 11578:1996 version: 1 (time and node based) content: time: 60266-07-14 05:26:.747955.2 UTC clock: 8192 (usually random) node: 00:00:00:00:00:00 (global unicast) * What exactly did you do (or not do) that was effective (or ineffective)? Suspecting memory unsafety, I reran the command in `valgrind` as valgrind uuid -d 00000000-0000-1100-a000-000000000000 * What was the outcome of this action? This showed a number of "use of uninitialized value" errors: ==6046== Memcheck, a memory error detector ==6046== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al. ==6046== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info ==6046== Command: uuid -d 00000000-0000-1100-a000-000000000000 ==6046== ==6046== Conditional jump or move depends on uninitialised value(s) ==6046== at 0x4846798: strlen (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==6046== by 0x485D47A: uuid_str_vsnprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DDE5: uuid_str_vrsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DF03: uuid_str_rsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x48582AA: uuid_export (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x1098DE: ??? (in /usr/bin/uuid) ==6046== by 0x4889189: (below main) (libc_start_call_main.h:58) ==6046== ==6046== Conditional jump or move depends on uninitialised value(s) ==6046== at 0x485D509: uuid_str_vsnprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DDE5: uuid_str_vrsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DF03: uuid_str_rsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x48582AA: uuid_export (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x1098DE: ??? (in /usr/bin/uuid) ==6046== by 0x4889189: (below main) (libc_start_call_main.h:58) ==6046== ==6046== Conditional jump or move depends on uninitialised value(s) ==6046== at 0x4846798: strlen (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==6046== by 0x485D47A: uuid_str_vsnprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DE15: uuid_str_vrsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DF03: uuid_str_rsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x48582AA: uuid_export (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x1098DE: ??? (in /usr/bin/uuid) ==6046== by 0x4889189: (below main) (libc_start_call_main.h:58) ==6046== ==6046== Conditional jump or move depends on uninitialised value(s) ==6046== at 0x485D509: uuid_str_vsnprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DE15: uuid_str_vrsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x485DF03: uuid_str_rsprintf (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x48582AA: uuid_export (in /usr/lib/x86_64-linux-gnu/libossp-uuid.so.16.0.22) ==6046== by 0x1098DE: ??? (in /usr/bin/uuid) ==6046== by 0x4889189: (below main) (libc_start_call_main.h:58) ==6046== encode: STR: 00000000-0000-1100-a000-000000000000 SIV: 80291759423830037102592 decode: variant: DCE 1.1, ISO/IEC 11578:1996 version: 1 (time and node based) content: time: 60266-07-14 05:26:.747955.2 UTC clock: 8192 (usually random) node: 00:00:00:00:00:00 (global unicast) ==6046== ==6046== HEAP SUMMARY: ==6046== in use at exit: 0 bytes in 0 blocks ==6046== total heap usage: 18 allocs, 18 frees, 10,431 bytes allocated ==6046== ==6046== All heap blocks were freed -- no leaks are possible ==6046== ==6046== Use --track-origins=yes to see where uninitialised values come from ==6046== For lists of detected and suppressed errors, rerun with: -s ==6046== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0) * What outcome did you expect instead? I did not expect any use of uninitialized values, even for malformatted / strange / out of range UUIDs. Instead the UUID should either be correctly handled or an error message should be emitted. -- System Information: Debian Release: 12.0 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 6.1.0-10-amd64 (SMP w/1 CPU thread; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages uuid depends on: ii libc6 2.36-9 ii libossp-uuid16 1.6.2-1.5+b11 uuid recommends no packages. uuid suggests no packages. -- no debconf information