Re: [PATCH 08/13] conf: Introduce parser, formatter for uid and fid

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

 



Pino Toscano <ptoscano@xxxxxxxxxx> [2018-05-25, 01:05PM +0200]:
> On Thursday, 24 May 2018 14:24:33 CEST Xiao Feng Ren wrote:
> > diff --git a/docs/schemas/basictypes.rng b/docs/schemas/basictypes.rng
> > index 1a18cd31b1..8050a3ebc4 100644
> > --- a/docs/schemas/basictypes.rng
> > +++ b/docs/schemas/basictypes.rng
> > @@ -111,6 +111,34 @@
> >        </attribute>
> >      </optional>
> >    </define>
> > +  <define name="zpciaddress">
> > +    <optional>
> > +      <attribute name="uid">
> > +        <choice>
> > +          <data type="string">
> > +            <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
> > +          </data>
> > +          <data type="unsignedInt">
> > +            <param name="minInclusive">1</param>
> > +            <param name="maxInclusive">65535</param>
> > +          </data>
> > +        </choice>
> > +      </attribute>
> 
> This seems to be the "uint16" type already.

uint16 has '0' inclusive which we do not technically allow, although we
couldn't come up with a nice enough regex to also exlude it there.

> > +    </optional>
> > +    <optional>
> > +      <attribute name="fid">
> > +        <choice>
> > +          <data type="string">
> > +            <param name="pattern">(0x)?[0-9a-fA-F]{1,8}</param>
> > +          </data>
> > +          <data type="unsignedLong">
> > +            <param name="minInclusive">0</param>
> > +            <param name="maxInclusive">4294967295</param>
> > +          </data>
> > +        </choice>
> > +      </attribute>
> 
> This could be a new "uint32" type, changing the 0x prefix as
> non-optional (otherwise the value "10" can be both valid as decimal
> and hexadeciaml).

Here it would be fine.

> > @@ -57,6 +125,8 @@ void
> >  virDomainDeviceInfoClear(virDomainDeviceInfoPtr info)
> >  {
> >      VIR_FREE(info->alias);
> > +    if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI)
> > +        VIR_FREE(info->addr.pci.zpci);
> 
> VIR_FREE should be safe to use on a NULL pointer, so just call it
> directly without checking the type.

But if the union info->addr is not of type PCI then the pointer could
hold arbitrary value, right? Which is not the case currently, because
the zpci field is far enough in the structure to be always 0 set, but we
shouldn't rely on this IMHO.

-- 
IBM Systems
Linux on Z & Virtualization Development
------------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Schönaicher Str. 220, 71032 Böblingen
Phone: +49 7031 16 1819
------------------------------------------------------------------------
Vorsitzende des Aufsichtsrats: Martina Koederitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294 

Attachment: signature.asc
Description: PGP signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[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