On Tue, 05.03.13 11:46, Nathaniel Chen (nathaniel.c...@intel.com) wrote: Thanks! Applied!
> this addresses the bug at: > https://bugs.freedesktop.org/show_bug.cgi?id=59311 > > hostnamectl is supposed to allow a range of special characters for > the 'pretty' hostname: > $ hostnamectl set-hostname --pretty "Nathaniels Desktop !@#$%" > ..however, it rejects apostrophes, double quotes, and backslashes. > The manual for hostnamectl suggests that this should be allowed. > > It makes sense to reject \0, \n, etc. pretty_string_is_safe() is > the same as string_is_safe(), but allows more special characters. > --- > src/hostname/hostnamed.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c > index 7ea891c..979dcfd 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); Lennart -- Lennart Poettering - Red Hat, Inc. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel