[libvirt] [PATCH 1/8] util: conf: Use long long when parsing
Andrea Bolognani
abologna at redhat.com
Mon Jul 18 14:30:01 UTC 2016
On Mon, 2016-07-18 at 09:16 +0100, Daniel P. Berrange wrote:
> On Fri, Jul 15, 2016 at 07:46:23PM +0200, Andrea Bolognani wrote:
> >
> > Commit 6381c89f8cce changed virConfValue to store long long
> > integers instead of long integers; however, the temporary variable
> > used in virConfParseLong() was not updated accordingly, causing
> > trouble for 32-bit machines.
> > ---
> > src/util/virconf.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/util/virconf.c b/src/util/virconf.c
> > index 33d6d92..66f8144 100644
> > --- a/src/util/virconf.c
> > +++ b/src/util/virconf.c
> > @@ -364,9 +364,9 @@ virConfSaveEntry(virBufferPtr buf, virConfEntryPtr cur)
> > * Returns 0 in case of success and -1 in case of error
> > */
> > static int
> > -virConfParseLong(virConfParserCtxtPtr ctxt, long *val)
> > +virConfParseLong(virConfParserCtxtPtr ctxt, long long *val)
> > {
> > - long l = 0;
> > + long long l = 0;
> > int neg = 0;
> >
> > if (CUR == '-') {
> > @@ -476,7 +476,7 @@ virConfParseValue(virConfParserCtxtPtr ctxt)
> > virConfValuePtr ret, lst = NULL, tmp, prev;
> > virConfType type = VIR_CONF_NONE;
> > char *str = NULL;
> > - long l = 0;
> > + long long l = 0;
> >
> > SKIP_BLANKS;
> > if (ctxt->cur >= ctxt->end) {
>
> ACK, but perhaps you could add a test case to tests/virconftest to
> validate this too.
virconftest will already fail without this patch:
4) int ... Expected -6963472309248 got -1330322432
because the call to virConfGetValueLLong() will not be able
to return the correct value. So I think we're covered.
I've pushed the whole series, thanks for reviewing it!
--
Andrea Bolognani / Red Hat / Virtualization
More information about the libvir-list
mailing list