mirror of git://git.sysmocom.de/ofono
Add simple utility to validate paths
This commit is contained in:
parent
8e62522575
commit
03a0fde2f4
44
src/dbus.c
44
src/dbus.c
|
@ -320,6 +320,50 @@ void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply)
|
||||||
*msg = NULL;
|
*msg = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean __ofono_dbus_valid_object_path(const char *path)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
char c = '\0';
|
||||||
|
|
||||||
|
if (path == NULL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (path[0] == '\0')
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (path[0] && !path[1] && path[0] == '/')
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
if (path[0] != '/')
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
for (i = 0; path[i]; i++) {
|
||||||
|
if (path[i] == '/' && c == '/')
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
c = path[i];
|
||||||
|
|
||||||
|
if (path[i] >= 'a' && path[i] <= 'z')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (path[i] >= 'A' && path[i] <= 'Z')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (path[i] >= '0' && path[i] <= '9')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (path[i] == '_' || path[i] == '/')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (path[i-1] == '/')
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
DBusConnection *ofono_dbus_get_connection()
|
DBusConnection *ofono_dbus_get_connection()
|
||||||
{
|
{
|
||||||
return g_connection;
|
return g_connection;
|
||||||
|
|
|
@ -53,6 +53,8 @@ DBusMessage *__ofono_error_sim_not_ready(DBusMessage *msg);
|
||||||
|
|
||||||
void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply);
|
void __ofono_dbus_pending_reply(DBusMessage **msg, DBusMessage *reply);
|
||||||
|
|
||||||
|
gboolean __ofono_dbus_valid_object_path(const char *path);
|
||||||
|
|
||||||
#include <ofono/types.h>
|
#include <ofono/types.h>
|
||||||
|
|
||||||
#include <ofono/plugin.h>
|
#include <ofono/plugin.h>
|
||||||
|
|
Loading…
Reference in New Issue