From e7e2bb884f29ac42df0dd2419861f87dd8c36005 Mon Sep 17 00:00:00 2001 From: Colin Patrick McCabe Date: Thu, 17 Mar 2011 11:16:01 -0700 Subject: [PATCH] config: fix get_val, set_val Signed-off-by: Colin McCabe --- src/common/config.cc | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/common/config.cc b/src/common/config.cc index 96f167ac251f7..f292c3bfe4d89 100644 --- a/src/common/config.cc +++ b/src/common/config.cc @@ -958,10 +958,10 @@ set_val(const char *key, const char *val) *(long long*)opt->val_ptr = atoll(val); return 0; case OPT_STR: { - char *p = (char*)opt->val_ptr; - free(p); - opt->val_ptr = strdup(val); - return 0; + char **p = (char**)opt->val_ptr; + free(*p); + *p = strdup(val); + return 0; } case OPT_FLOAT: *(float*)opt->val_ptr = atof(val); @@ -1008,10 +1008,12 @@ get_val(const char *key, char **buf, int len) case OPT_LONGLONG: oss << *(long long*)opt->val_ptr; break; - case OPT_STR: - if (opt->val_ptr) - oss << (char*)opt->val_ptr; - break; + case OPT_STR: { + char *p = *((char**)opt->val_ptr); + if (p) + oss << p; + } + break; case OPT_FLOAT: oss << *(float*)opt->val_ptr; break; -- 2.39.5