[Libguestfs] [PATCH] lib: Use a common function to validate strings.

Richard W.M. Jones rjones at redhat.com
Wed Jan 18 13:38:07 UTC 2017


On Tue, Jan 03, 2017 at 11:47:50AM +0100, Pino Toscano wrote:
> On Saturday, 24 December 2016 17:05:59 CET Richard W.M. Jones wrote:
> > ---
> >  python/Makefile.am              |  5 ++++
> >  src/appliance-kcmdline.c        | 21 ++-----------
> >  src/drives.c                    | 65 +++++++----------------------------------
> >  src/guestfs-internal-frontend.h |  3 ++
> >  src/unit-tests.c                | 40 +++++++++++++++++++++++++
> >  src/utils.c                     | 50 +++++++++++++++++++++++++++++--
> >  6 files changed, 110 insertions(+), 74 deletions(-)
> > 
> 
> Look reasonable, just a couple of notes.
> 
> > +bool
> > +guestfs_int_string_is_valid (const char *str,
> > +                             size_t min_length, size_t max_length,
> > +                             bool alpha, bool digit, const char *extra)
> 
> min_length and max_length could be signed (ssize_t), with -1 (and even
> 0) indicating no actual limit. IMHO that could be slightly more readable
> than SIZE_MAX.
> 
> Also, all the usages so far pass alpha=true, so could be worth just
> assuming that for now, and dropping that parameter. After all, without
> alpha chars there are two combinations:
> a) a number
> b) number + extra chars
> (a) is already done by other functions converting string to numbers,
> while (b) looks like an uncommon case, and not needed yet.

I pushed this with a few changes suggested.

min_length and max_length can be 0 to indicate no test.

Instead of alpha/digit booleans, I used a flags field.  However I left
the alpha flag because otherwise it's not clear just by inspecting the
code that alphabetic characters are permitted.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine.  Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/




More information about the Libguestfs mailing list