From 8a67f04f02a8182a605a697764ab1535d1a75fe3 Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Mon, 11 Apr 2011 21:11:05 +0200 Subject: [PATCH 1/1] 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. --- src/config.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index 91ad700..b2b7904 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); -- 2.7.4