From: Anthony PERARD <anthony.perard@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>
Cc: ian.jackson@eu.citrix.com, Ian Campbell <Ian.Campbell@citrix.com>,
xen-devel@lists.xen.org
Subject: Re: [PATCH V4 09/24] libxl_json: introduce parser functions for builtin types
Date: Tue, 6 May 2014 16:14:53 +0100 [thread overview]
Message-ID: <20140506151453.GI3530@perard.uk.xensource.com> (raw)
In-Reply-To: <20140506144906.GO17067@zion.uk.xensource.com>
On Tue, May 06, 2014 at 03:49:06PM +0100, Wei Liu wrote:
> On Tue, May 06, 2014 at 03:45:47PM +0100, Wei Liu wrote:
> > On Tue, May 06, 2014 at 03:35:27PM +0100, Anthony PERARD wrote:
> > [...]
> > > > +/* Macro to generate:
> > > > + * libxl__uint8_parse_json
> > > > + * libxl__uint16_parse_json
> > > > + * libxl__uint32_parse_json
> > > > + * libxl__uint64_parse_json
> > > > + */
> > > > +#define PARSE_UINT(width) \
> > > > + int libxl__uint ## width ## _parse_json(libxl__gc *gc, \
> > > > + const libxl__json_object *o,\
> > > > + void *p) \
> > > > + { \
> > > > + long long i; \
> > > > + \
> > > > + if (!libxl__json_object_is_integer(o)) \
> > > > + return ERROR_FAIL; \
> > > > + \
> > > > + i = libxl__json_object_get_integer(o); \
> > > > + \
> > > > + if (i > UINT ## width ## _MAX) \
> > > > + return ERROR_FAIL; \
> > >
> > > My guest is this will always be false for uint64 and maybe for uint32.
> > > The value return by get_interger can only be <= LLONG_MAX which I
> > > suppose is still < UINT64_MAX.
> > >
> >
> > I was just being lazy about it.
> >
> > > Also, 'i' might be < 0.
> > >
> >
> > Phew, I knew this but somehow I thought it was OK. :-(
> >
> > So the two things combined, the check should be
> >
> > (i > 0 && i < UINT ## width ## _MAX)
> >
> > What do you think?
0 is also valid ;), and I think UINTX_MAX is valid too,
so (i >= 0 && i <= UINT ## width ## _MAX) should do.
Or:
if (i < 0 || i > UINT ## width ## _MAX)
return ERROR_FAIL;
> > > If json contain a value > LLONG_MAX, the value will be store as a string
> > > with the type number.
> > >
> >
> > This is also true, but I coded like this on purpose. You won't be able
> > to convert that string anyway because that's why it's stored as string
> > in the first place. We should just return ERROR_FAIL in this case, which
> > we do already with the check libxl__json_object_is_integer.
> >
>
> Of course with the sole exception of uint64_t parser. This is a special
> case that needs to be handled.
Right.
--
Anthony PERARD
next prev parent reply other threads:[~2014-05-06 15:14 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-01 12:57 [PATCH V4 00/24] JSON infrastructure, new "xl-json" format and domain configuration synchronization Wei Liu
2014-05-01 12:57 ` [PATCH V4 01/24] xl / libxl: push parsing of SSID and CPU pool ID down to libxl Wei Liu
2014-05-06 12:45 ` Ian Campbell
2014-05-06 13:03 ` Wei Liu
2014-05-07 9:50 ` Ian Campbell
2014-05-07 10:30 ` Wei Liu
2014-05-01 12:57 ` [PATCH V4 02/24] libxl: fix memory leak in libxl_cpuid_dispose Wei Liu
2014-05-06 12:47 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 03/24] libxl.h: document the paradigm of using libxl types Wei Liu
2014-05-06 12:49 ` Ian Campbell
2014-05-06 13:12 ` Ian Jackson
2014-05-06 13:49 ` Wei Liu
2014-05-07 9:53 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 04/24] libxl.h: move / add some libxl defbool #define here Wei Liu
2014-05-06 12:50 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 05/24] libxl IDL: rename json_fn to json_gen_fn Wei Liu
2014-05-01 12:58 ` [PATCH V4 06/24] libxl_json: introduce libx__object_from_json Wei Liu
2014-05-06 12:53 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 07/24] libxl_internal: make JSON_* types a bit-field Wei Liu
2014-05-01 12:58 ` [PATCH V4 08/24] libxl_internal: introduce libxl__json_object_is_{null, number, double} Wei Liu
2014-05-01 12:58 ` [PATCH V4 09/24] libxl_json: introduce parser functions for builtin types Wei Liu
2014-05-06 12:57 ` Ian Campbell
2014-05-06 13:06 ` Wei Liu
2014-05-07 9:57 ` Ian Campbell
2014-05-06 13:57 ` Anthony PERARD
2014-05-06 14:04 ` Wei Liu
2014-05-06 14:35 ` Anthony PERARD
2014-05-06 14:45 ` Wei Liu
2014-05-06 14:49 ` Wei Liu
2014-05-06 15:14 ` Anthony PERARD [this message]
2014-05-06 15:42 ` Wei Liu
2014-05-06 15:59 ` Anthony PERARD
2014-05-06 16:13 ` Wei Liu
2014-05-12 16:43 ` Wei Liu
2014-05-13 8:26 ` Ian Campbell
2014-05-13 9:19 ` Wei Liu
2014-05-13 9:32 ` Ian Campbell
2014-05-13 10:40 ` Wei Liu
2014-05-13 10:45 ` Ian Campbell
2014-05-13 10:51 ` Wei Liu
2014-05-13 10:55 ` Ian Campbell
2014-05-13 11:03 ` Wei Liu
2014-05-13 11:13 ` Ian Campbell
2014-05-13 11:38 ` Wei Liu
2014-05-13 11:28 ` Anthony PERARD
2014-05-13 11:40 ` Wei Liu
2014-05-13 11:54 ` Ian Campbell
2014-05-13 11:58 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 10/24] libxl_json: allow basic JSON type objects generation Wei Liu
2014-05-06 13:02 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 11/24] libxl/gentypes.py: include discriminator in JSON output Wei Liu
2014-05-06 13:03 ` Ian Campbell
2014-05-06 13:09 ` Wei Liu
2014-05-07 10:00 ` Ian Campbell
2014-05-07 10:35 ` Wei Liu
2014-05-07 10:45 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 12/24] libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct Wei Liu
2014-05-06 13:45 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 13/24] libxl/gentest.py: test JSON parser Wei Liu
2014-05-06 13:46 ` Ian Campbell
2014-05-06 14:11 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 14/24] libxl: introduce libxl_key_value_list_length Wei Liu
2014-05-06 13:50 ` Ian Campbell
2014-05-06 14:13 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 15/24] libxl: introduce libxl_cpuid_policy_list_length Wei Liu
2014-05-06 13:51 ` Ian Campbell
2014-05-06 14:17 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 16/24] libxl: copy function for builtin types Wei Liu
2014-05-06 14:03 ` Ian Campbell
2014-05-06 14:36 ` Wei Liu
2014-05-07 10:05 ` Ian Campbell
2014-05-07 10:19 ` Wei Liu
2014-05-07 10:40 ` Ian Campbell
2014-05-07 10:47 ` Ian Jackson
2014-05-07 10:57 ` Ian Campbell
2014-05-07 12:55 ` Wei Liu
2014-05-07 13:10 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 17/24] libxl IDL: generate deep copy functions Wei Liu
2014-05-06 14:06 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 18/24] libxl/gentest.py: test " Wei Liu
2014-05-06 14:06 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 19/24] xl: introduce and use "xl-json" format Wei Liu
2014-05-06 14:26 ` Ian Campbell
2014-05-06 15:17 ` Wei Liu
2014-05-06 16:35 ` Wei Liu
2014-05-07 10:11 ` Ian Campbell
2014-05-07 11:18 ` Ian Jackson
2014-05-07 11:20 ` Wei Liu
2014-05-07 11:30 ` Ian Campbell
2014-05-07 13:00 ` Wei Liu
2014-05-07 13:08 ` Ian Campbell
2014-05-07 11:16 ` Ian Jackson
2014-05-07 11:20 ` Ian Campbell
2014-05-07 12:56 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 20/24] xl: introduce load/save_domain_config Wei Liu
2014-05-06 14:28 ` Ian Campbell
2014-05-06 15:03 ` Wei Liu
2014-05-07 10:12 ` Ian Campbell
2014-05-01 12:58 ` [PATCH V4 21/24] xl: update domain configuration when running mem-set and mem-max Wei Liu
2014-05-06 14:30 ` Ian Campbell
2014-05-06 14:56 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 22/24] xl: update domain configuration when we hotplug a device Wei Liu
2014-05-06 15:44 ` Ian Campbell
2014-05-06 15:58 ` Wei Liu
2014-05-07 10:16 ` Ian Campbell
2014-05-06 16:57 ` David Vrabel
2014-05-06 17:13 ` Wei Liu
2014-05-07 10:21 ` David Vrabel
2014-05-07 10:42 ` Ian Campbell
2014-05-07 10:59 ` Andrew Cooper
2014-05-01 12:58 ` [PATCH V4 23/24] libxl: consider force removal of device successful Wei Liu
2014-05-06 15:48 ` Ian Campbell
2014-05-06 16:04 ` Wei Liu
2014-05-07 10:18 ` Ian Campbell
2014-05-07 13:09 ` Wei Liu
2014-05-01 12:58 ` [PATCH V4 24/24] xl: update configuration when we unplug a device Wei Liu
2014-05-06 15:55 ` Ian Campbell
2014-05-06 16:12 ` Wei Liu
2014-05-07 10:20 ` Ian Campbell
2014-05-01 13:02 ` [PATCH V4 00/24] JSON infrastructure, new "xl-json" format and domain configuration synchronization Wei Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140506151453.GI3530@perard.uk.xensource.com \
--to=anthony.perard@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).