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