diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2011-04-11 21:11:05 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-04-11 21:11:05 +0200 |
commit | 8a67f04f02a8182a605a697764ab1535d1a75fe3 (patch) | |
tree | 8ab3c62b2bee39dc2411bf4d0e9778a2e0343343 /src/config.c | |
parent | 4319fd0bb5991b78b492f59e57850c2d971f1002 (diff) | |
download | connman-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.c | 22 |
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); |