summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorLuigi Rizzo <rizzo@icir.org>2007-11-14 13:18:40 +0000
committerLuigi Rizzo <rizzo@icir.org>2007-11-14 13:18:40 +0000
commit7f8ecd2cd39ac2299ec08deb4dc92839be5412d1 (patch)
tree01f0ca16e50b44357fb29bdb18793405a071da0f /res
parentd3414c7552012dac078288cc73e813a17a99e94d (diff)
make the 'name' and 'value' fields in ast_variable const char *
This prevents modifying the strings in the stored variables, and catched a few instances where this was actually done. Given the differences between trunk and 1.4 (and the fact that this is effectively an API change) it is better to fix 1.4 independently. These are chan_sip.c::sip_register() chan_skinny.c:: near line 2847 config.c:: near line 1774 logger.c::make_components() res_adsi.c:: near line 1049 I may have missed some instances for modules that do not build here. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89268 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r--res/res_adsi.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/res/res_adsi.c b/res/res_adsi.c
index 08ae71f7c..ae166fe12 100644
--- a/res/res_adsi.c
+++ b/res/res_adsi.c
@@ -70,7 +70,8 @@ static int maxretries = DEFAULT_ADSI_MAX_RETRIES;
static char intro[ADSI_MAX_INTRO][20];
static int aligns[ADSI_MAX_INTRO];
-static char speeddial[ADSI_MAX_SPEED_DIAL][3][20];
+#define SPEEDDIAL_MAX_LEN 20
+static char speeddial[ADSI_MAX_SPEED_DIAL][3][SPEEDDIAL_MAX_LEN];
static int alignment = 0;
@@ -988,7 +989,7 @@ static int _ast_adsi_unload_session(struct ast_channel *chan)
return 0;
}
-static int str2align(char *s)
+static int str2align(const char *s)
{
if (!strncasecmp(s, "l", 1))
return ADSI_JUST_LEFT;
@@ -1048,7 +1049,9 @@ static void adsi_load(void)
x = 0;
for (v = ast_variable_browse(conf, "speeddial"); v; v = v->next) {
- char *stringp = v->value;
+ char buf[3 * SPEEDDIAL_MAX_LEN];
+ char *stringp = buf;
+ ast_copy_string(buf, v->value, sizeof(buf));
name = strsep(&stringp, ",");
sname = strsep(&stringp, ",");
if (!sname)