summaryrefslogtreecommitdiff
path: root/src/config.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2011-04-11 21:11:05 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2011-04-11 21:11:05 +0200
commit8a67f04f02a8182a605a697764ab1535d1a75fe3 (patch)
tree8ab3c62b2bee39dc2411bf4d0e9778a2e0343343 /src/config.c
parent4319fd0bb5991b78b492f59e57850c2d971f1002 (diff)
downloadconnman-8a67f04f02a8182a605a697764ab1535d1a75fe3.tar.gz
connman-8a67f04f02a8182a605a697764ab1535d1a75fe3.tar.bz2
connman-8a67f04f02a8182a605a697764ab1535d1a75fe3.zip
config: Use static function to validate identifiers
Config file names are not exposed through D-Bus, so there is no need to run connman_dbus_validate_ident() on them. Checking for a readable string still makes sense though.
Diffstat (limited to 'src/config.c')
-rw-r--r--src/config.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/config.c b/src/config.c
index 91ad700d..b2b79048 100644
--- a/src/config.c
+++ b/src/config.c
@@ -514,6 +514,20 @@ out:
return err;
}
+static connman_bool_t validate_ident(const char *ident)
+{
+ unsigned int i;
+
+ if (ident == NULL)
+ return FALSE;
+
+ for (i = 0; i < strlen(ident); i++)
+ if (g_ascii_isprint(ident[i]) == FALSE)
+ return FALSE;
+
+ return TRUE;
+}
+
static int read_configs(void)
{
GDir *dir;
@@ -541,12 +555,14 @@ static int read_configs(void)
ident = g_string_free(str, FALSE);
- if (connman_dbus_validate_ident(ident) == TRUE) {
+ if (validate_ident(ident) == TRUE) {
struct connman_config *config;
config = create_config(ident);
if (config != NULL)
load_config(config);
+ } else {
+ connman_error("Invalid config ident %s", ident);
}
g_free(ident);
}
@@ -619,8 +635,10 @@ static gboolean inotify_data(GIOChannel *channel, GIOCondition cond,
*ext = '\0';
- if (connman_dbus_validate_ident(ident) == FALSE)
+ if (validate_ident(ident) == FALSE) {
+ connman_error("Invalid config ident %s", ident);
continue;
+ }
if (event->mask & IN_CREATE)
create_config(ident);