[libvirt] [PATCH 2/2] Adapt to new VIR_STRNDUP behavior
Michal Privoznik
mprivozn at redhat.com
Fri May 24 12:57:59 UTC 2013
On 24.05.2013 11:53, Michal Privoznik wrote:
> With previous patch, we accept negative value as length of string to
> duplicate. So there is no need to pass strlen(src) in case we want to do
> duplicate the whole string.
> ---
> src/conf/domain_conf.c | 6 ++----
> src/qemu/qemu_command.c | 14 ++++++--------
> src/util/virsexpr.c | 2 +-
> src/xenxs/xen_sxpr.c | 4 ++--
> 4 files changed, 11 insertions(+), 15 deletions(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 434f5a7..0373626 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -8674,7 +8674,7 @@ static int qemuStringToArgvEnv(const char *args,
> if (!next)
> next = strchr(curr, '\n');
>
> - if (VIR_STRNDUP(arg, curr, next ? next - curr : strlen(curr)) < 0)
> + if (VIR_STRNDUP(arg, curr, next ? next - curr : -1) < 0)
Or we can even go with 'VIR_STRNDUP(arg, curr, next - curr) < 0' but
that's not so easy to read. The rationale behind is: I intentionally
made VIR_STRNDUP to accept *any* negative value, not just -1. Because if
strrchr(cur, '\n') just a few lines above fails, next is just NULL.
Deducting from NULL will get a negative value. Which will make
VIR_STRNDUP duplicate the while string. But I worry that it would be an
ugly code, wouldn't it?
Michal
More information about the libvir-list
mailing list