X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fhostname%2Fhostnamed.c;h=979dcfdc7f42442a2f9c485a3e1123eedd8e5794;hb=5052495bbaf318d132024e75295da2f5d721420c;hp=7ea891c68101e96132445719d0bd0adf4e77c383;hpb=a5c32cff1f56afe6f0c6c70d91a88a7a8238b2d7;p=elogind.git diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index 7ea891c68..979dcfdc7 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -159,6 +159,19 @@ static bool valid_chassis(const char *chassis) { chassis); } +static bool pretty_string_is_safe(const char *p) { + const char *t; + + assert(p); + + for (t = p; *t; t++) { + if (*t >= '\0' && *t < ' ') + return false; + } + + return true; +} + static const char* fallback_chassis(void) { int r; char *type; @@ -553,7 +566,7 @@ static DBusHandlerResult hostname_message_handler( * safe than sorry */ if (k == PROP_ICON_NAME && !filename_is_safe(name)) return bus_send_error_reply(connection, message, NULL, -EINVAL); - if (k == PROP_PRETTY_HOSTNAME && !string_is_safe(name)) + if (k == PROP_PRETTY_HOSTNAME && !pretty_string_is_safe(name)) return bus_send_error_reply(connection, message, NULL, -EINVAL); if (k == PROP_CHASSIS && !valid_chassis(name)) return bus_send_error_reply(connection, message, NULL, -EINVAL);