[libvirt] [PATCH 15/20] Provide missing passphrase when creating a volume.

Daniel P. Berrange berrange at redhat.com
Tue Sep 1 17:41:41 UTC 2009


On Tue, Sep 01, 2009 at 11:49:14AM -0400, Miloslav Trmac wrote:
> ----- "Daniel P. Berrange" <berrange at redhat.com> wrote:
> 
> > > +    /* A qcow passphrase is up to 16 bytes, with any data following a NUL
> > > +       ignored.  Prohibit control and non-ASCII characters to avoid possible
> > > +       unpleasant surprises with the qemu monitor input mechanism. */
> > > +    fd = open("/dev/urandom", O_RDONLY);
> > > +    if (fd < 0) {
> > > +        virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR, "%s",
> > > +                              _("Cannot open /dev/urandom"));
> > > +        goto cleanup;
> > > +    }
> > > +    i = 0;
> > > +    while (i < sizeof (value)) {
> > > +        ssize_t r;
> > > +
> > > +        while ((r = read(fd, value + i, 1)) == -1 && errno == EINTR)
> > > +            ;
> > > +        if (r <= 0) {
> > > +            virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR, "%s",
> > > +                                  _("Cannot read from /dev/urandom"));
> > > +            goto cleanup;
> > > +        }
> > > +        if (value[i] >= 0x20 && value[i] <= 0x7E)
> > > +            i++; /* Got an acceptable character */
> > > +    }
> > > +    close(fd);
> > 
> > I reckon this snippet of code could usefully be put into the util.h file
> > as virFileGenerateRandomkey(), or alternatively perhaps secret_conf.h, 
> > as virSecretGenerateRandomKey(unsigned char *buf, size_t buflen);
> This code, with its limitation to ASCII characters, is qcow/qemu-specific.

Ok, lets leave it in the QEMU driver file then

Regards,
Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list