diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2020-11-02 13:19:53 -0500 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2020-11-03 09:42:52 -0500 |
commit | 090afdc5e61e80de4ac158fa4cb2a578ee69be54 (patch) | |
tree | 0aca2491db5e21ae98dcac2fcf6c4a3e23634e1f | |
parent | 83851c7c60c90e9fb6a23ff48076387a77bc33cd (diff) |
cutils: replace strdup with g_strdup
Memory returned by get_relocated_path must be freed with
free or g_free depending on the path that the function
took; Coverity takes exception to this practice. The
fix lets caller use g_free as is standard in QEMU.
While at it, mention the requirements on the caller in
the doc comment.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r-- | include/qemu/cutils.h | 1 | ||||
-rw-r--r-- | util/cutils.c | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/include/qemu/cutils.h b/include/qemu/cutils.h index 4bbf4834ea..986ed8e15f 100644 --- a/include/qemu/cutils.h +++ b/include/qemu/cutils.h @@ -205,6 +205,7 @@ int qemu_pstrcmp0(const char **str1, const char **str2); * as the prefix. For example, if `bindir` is `/usr/bin` and @dir is * `/usr/share/qemu`, the function will append `../share/qemu` to the * directory that contains the running executable and return the result. + * The returned string should be freed by the caller. */ char *get_relocated_path(const char *dir); diff --git a/util/cutils.c b/util/cutils.c index c395974fab..9498e28e1a 100644 --- a/util/cutils.c +++ b/util/cutils.c @@ -937,7 +937,7 @@ char *get_relocated_path(const char *dir) /* Fail if qemu_init_exec_dir was not called. */ assert(exec_dir[0]); if (!starts_with_prefix(dir) || !starts_with_prefix(bindir)) { - return strdup(dir); + return g_strdup(dir); } result = g_string_new(exec_dir); |