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

Bug #1708635 reported by Alan Griffiths on 2017-08-04
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
util-linux (Ubuntu)
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)
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

Alan Griffiths (alan-griffiths) wrote :

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

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)
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.

Changed in util-linux (Ubuntu):
status: New → Fix Committed
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  Edit
Everyone can see this information.

Other bug subscribers