summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/core/utils.h7
-rw-r--r--include/osmocom/ctrl/control_cmd.h2
2 files changed, 8 insertions, 1 deletions
diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h
index c08e7753..373522ac 100644
--- a/include/osmocom/core/utils.h
+++ b/include/osmocom/core/utils.h
@@ -1,6 +1,7 @@
#pragma once
#include <osmocom/core/backtrace.h>
+#include <osmocom/core/talloc.h>
/*! \defgroup utils General-purpose utility functions
* @{
@@ -59,5 +60,11 @@ do { \
abort(); \
}
+static inline void osmo_talloc_replace_string(void *ctx, char **dst, char *newstr)
+{
+ if (*dst)
+ talloc_free(*dst);
+ *dst = talloc_strdup(ctx, newstr);
+}
/*! @} */
diff --git a/include/osmocom/ctrl/control_cmd.h b/include/osmocom/ctrl/control_cmd.h
index 10717acf..e38db037 100644
--- a/include/osmocom/ctrl/control_cmd.h
+++ b/include/osmocom/ctrl/control_cmd.h
@@ -145,7 +145,7 @@ static int get_##cmdname(struct ctrl_cmd *cmd, void *_data) \
static int set_##cmdname(struct ctrl_cmd *cmd, void *_data) \
{ \
dtype *data = cmd->node; \
- bsc_replace_string(cmd->node, &data->element, cmd->value); \
+ osmo_talloc_replace_string(cmd->node, &data->element, cmd->value); \
return get_##cmdname(cmd, _data); \
}
#define CTRL_CMD_DEFINE_STRING(cmdname, cmdstr, dtype, element) \