summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2010-06-10 17:26:57 -0700
committerAn-Cheng Huang <ancheng@vyatta.com>2010-06-10 17:26:57 -0700
commitc1877d1acd48dfeba464b33b268107ccca65c5e2 (patch)
treef6a6ea742aef0b847c86212c8444af2ffe8e4bab /src
parenteae0d49f34f70752084b6563e78811ccd2466bb8 (diff)
downloadvyatta-cfg-c1877d1acd48dfeba464b33b268107ccca65c5e2.tar.gz
vyatta-cfg-c1877d1acd48dfeba464b33b268107ccca65c5e2.zip
add value character restriction
* disallow newline in value strings. * move check into lib.
Diffstat (limited to 'src')
-rw-r--r--src/cli_new.c17
-rw-r--r--src/set.c11
2 files changed, 17 insertions, 11 deletions
diff --git a/src/cli_new.c b/src/cli_new.c
index b5d7add..5fdf60b 100644
--- a/src/cli_new.c
+++ b/src/cli_new.c
@@ -2039,6 +2039,23 @@ boolean validate_value(vtw_def *def, char *cp)
int status;
boolean ret=TRUE;
+ /* certain characters are not allowed */
+ {
+ int i = 0;
+ for (i = 0; i < strlen(cp); i++) {
+ if (cp[i] == '\'') {
+ fprintf(out_stream, "Cannot use the \"'\" (single quote) character "
+ "in a value string\n");
+ bye("single quote in value string\n");
+ }
+ if (cp[i] == '\n') {
+ fprintf(out_stream, "Cannot use the newline character "
+ "in a value string\n");
+ bye("newline in value string\n");
+ }
+ }
+ }
+
/* prepare cur_value */
set_at_string(cp);
status = char2val(def, cp, &validate_value_val);
diff --git a/src/set.c b/src/set.c
index 004f25c..5a68aac 100644
--- a/src/set.c
+++ b/src/set.c
@@ -29,17 +29,6 @@ boolean set_validate(vtw_def *defp, char *valp, boolean empty_val)
char* path_end=NULL;
if (!empty_val) {
- int i = 0;
- int val_len = strlen(valp);
-
- for (i = 0; i < val_len; i++) {
- if (valp[i] == '\'') {
- fprintf(out_stream, "Cannot use the \"'\" (single quote) character "
- "in a value string\n");
- bye("single quote in value string\n");
- }
- }
-
{
clind_path_ref tp = clind_path_construct(t_path.path);
if(tp) {