Re: [PATCH 4/4] bhyve: parse "passthru" commandline argument

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



  Peter Krempa wrote:

> On Tue, Feb 25, 2025 at 19:36:24 +0100, Roman Bogorodskiy wrote:
> >   Alexander Shursha wrote:
> > 
> > > Signed-off-by: Alexander Shursha <kekek2@xxxxx>
> > > ---
> > >  src/bhyve/bhyve_parse_command.c               | 60 +++++++++++++++++++
> > >  .../bhyveargv2xml-passthru.args               |  7 +++
> > >  .../bhyveargv2xml-passthru.xml                | 22 +++++++
> > >  tests/bhyveargv2xmltest.c                     |  1 +
> > >  4 files changed, 90 insertions(+)
> > >  create mode 100644 tests/bhyveargv2xmldata/bhyveargv2xml-passthru.args
> > >  create mode 100644 tests/bhyveargv2xmldata/bhyveargv2xml-passthru.xml
> > > 
> > > diff --git a/src/bhyve/bhyve_parse_command.c b/src/bhyve/bhyve_parse_command.c
> > > index 29d3a678bf..394fc151aa 100644
> > > --- a/src/bhyve/bhyve_parse_command.c
> > > +++ b/src/bhyve/bhyve_parse_command.c
> > > @@ -5,6 +5,7 @@
> > >   * Copyright (C) 2006 Daniel P. Berrange
> > >   * Copyright (c) 2011 NetApp, Inc.
> > >   * Copyright (C) 2020 Fabian Freyer
> > > + * Copyright (C) 2024-2025 Future Crew, LLC
> > >   *
> > >   * This library is free software; you can redistribute it and/or
> > >   * modify it under the terms of the GNU Lesser General Public
> > > @@ -639,6 +640,63 @@ bhyveParsePCIFbuf(virDomainDef *def,
> > >      return -1;
> > >  }
> > >  
> > > +static int
> > > +bhyveParsePassthru(virDomainDef *def G_GNUC_UNUSED,
> > > +                  unsigned pcibus,
> > > +                  unsigned pcislot,
> > > +                  unsigned pcifunction,
> > > +                  char *addr)
> > > +{
> > > +    /* -s slot,bus/slot/function */
> > > +    /* -s slot,pcibus:slot:function */
> > > +    virDomainHostdevDef *hostdev = NULL;
> > > +    g_auto(GStrv) params = NULL;
> > > +    GStrv param;
> > > +    char *p = NULL;
> > > +
> > > +    hostdev = virDomainHostdevDefNew();
> > 
> > Need to check if hostdev is NULL.
> 
> That can't happen:
> 
> virDomainHostdevDef *
> virDomainHostdevDefNew(void)
> {
>     virDomainHostdevDef *def;
> 
>     def = g_new0(virDomainHostdevDef, 1);
> 
>     def->info = g_new0(virDomainDeviceInfo, 1);
> 
>     return def;
> }
> 
> g_new0() abort()'s on OOM, thus this is guaranteed to return a valid
> pointer.
> 

Hm, interesting, that's been using g_new0() for about 5 years now.

Looks like there are a few places that need to be clean up then, e.g.
right in the same file (conf/domain_conf.c) in virDomainHostdevDefParseXML(), and some drivers as well.

Roman



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux