Valgrind reports " Uninitialised value was created by a stack allocation" in __uuid_generate_random

Bug #1708635 reported by Alan Griffiths
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
util-linux (Ubuntu)
Fix Released
Undecided
Chris Halse Rogers
Nominated for Artful by Alan Griffiths

Bug Description

This has shown up in lp:mir CI on Artful amd64 (and no other architecture or series we're using)

For example:

https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=artful/4870/consoleFull

Marking the memory with VALGRIND_MAKE_MEM_DEFINED() suppresses the error.

no longer affects: valgrind (Ubuntu)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Looking at the util-linux source it seems that this could arise if:

1. opening /dev/urandom succeeds; and,
2. a subsequent read() fails

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

PS I suspect this only manifests in CI because the builders have an older kernel than development machines.

Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

Not sure how to test this, but...

index b93b9ba47..cfa82d13c 100644
--- a/lib/randutils.c
+++ b/lib/randutils.c
@@ -81,8 +81,10 @@ void random_get_bytes(void *buf, size_t nbytes)
                while (n > 0) {
                        ssize_t x = read(fd, cp, n);
                        if (x <= 0) {
- if (lose_counter++ > 16)
+ if (lose_counter++ > 16) {
+ while (n--) *cp++ = rand();
                                        break;
+ }
                                continue;
                        }
                        n -= x;

Changed in util-linux (Ubuntu):
assignee: nobody → Chris Halse Rogers (raof)
Revision history for this message
Dimitri John Ledkov (xnox) wrote :

Hi,

Please provide minimal example of how to reproduce this. Ideally without the CI - as I see it tries to setup ccache / clang etc. And I'm not sure if all of that is relevant.

You mention an older kernel, what kernel is that? I would have thought a reasonable kernel to test on, is latest xenial-security kernel.

Instead of uploading fixes to util-linux, ideally an upstream bug report / pull request is open about the issue with as much details as possible.

Regards,

Dimitri.

Revision history for this message
Chris Halse Rogers (raof) wrote :
Changed in util-linux (Ubuntu):
status: New → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package util-linux - 2.30.1-0ubuntu3

---------------
util-linux (2.30.1-0ubuntu3) artful; urgency=medium

  * Cherrypick upstream patches to support getrandom() fallbacks on older
    kernels. LP: #1708635

 -- Dimitri John Ledkov <email address hidden> Mon, 14 Aug 2017 11:15:20 +0100

Changed in util-linux (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.