[PATCH] fwts_framework: ensure the string returned from fwts_arch_names is free'd
Colin King
colin.king at canonical.com
Fri Apr 24 13:48:24 UTC 2020
From: Colin Ian King <colin.king at canonical.com>
The string returned from fwts_arch_names is currently leaking. Fix this
by free'ing the returned object. To do so, the returned string can't be
a const char* so remove the const too.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/lib/include/fwts_arch.h | 2 +-
src/lib/src/fwts_arch.c | 2 +-
src/lib/src/fwts_framework.c | 6 ++++--
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/lib/include/fwts_arch.h b/src/lib/include/fwts_arch.h
index 55f1110b..07ec48b1 100644
--- a/src/lib/include/fwts_arch.h
+++ b/src/lib/include/fwts_arch.h
@@ -32,7 +32,7 @@ typedef enum {
extern fwts_architecture fwts_arch_get_host(void);
extern fwts_architecture fwts_arch_get_arch(const char *name);
-extern const char *fwts_arch_names(void);
+extern char *fwts_arch_names(void);
extern const char *fwts_arch_get_name(const fwts_architecture arch);
#endif
diff --git a/src/lib/src/fwts_arch.c b/src/lib/src/fwts_arch.c
index 27fce6b0..4c92e910 100644
--- a/src/lib/src/fwts_arch.c
+++ b/src/lib/src/fwts_arch.c
@@ -69,7 +69,7 @@ fwts_architecture fwts_arch_get_arch(const char *name)
return __fwts_arch_get_arch(name);
}
-const char *fwts_arch_names(void)
+char *fwts_arch_names(void)
{
const struct fwts_arch_info *ptr;
size_t len;
diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index dc1e3642..e1e896bb 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -1157,8 +1157,10 @@ static int fwts_framework_an_parse(fwts_framework *fw, const char *arg)
{
fw->target_arch = fwts_arch_get_arch(arg);
if (fw->target_arch == FWTS_ARCH_OTHER) {
- fprintf(stderr, "--arch can be one of: %s\n",
- fwts_arch_names());
+ char *names = fwts_arch_names();
+
+ fprintf(stderr, "--arch can be one of: %s\n", names ? names : "<unknown>");
+ free(names);
return FWTS_ERROR;
}
--
2.25.1
More information about the fwts-devel
mailing list