[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