logind: also escape external data when saving to /run

Better be safe than sorry...
This commit is contained in:
Lennart Poettering 2014-05-22 10:35:28 +09:00
parent eaa3b74dfd
commit 558c6490b1

View file

@ -213,7 +213,6 @@ int session_save(Session *s) {
if (s->scope)
fprintf(f, "SCOPE=%s\n", s->scope);
if (s->scope_job)
fprintf(f, "SCOPE_JOB=%s\n", s->scope_job);
@ -229,17 +228,54 @@ int session_save(Session *s) {
if (s->display)
fprintf(f, "DISPLAY=%s\n", s->display);
if (s->remote_host)
fprintf(f, "REMOTE_HOST=%s\n", s->remote_host);
if (s->remote_host) {
_cleanup_free_ char *escaped;
if (s->remote_user)
fprintf(f, "REMOTE_USER=%s\n", s->remote_user);
escaped = cescape(s->remote_host);
if (!escaped) {
r = -ENOMEM;
goto finish;
}
if (s->service)
fprintf(f, "SERVICE=%s\n", s->service);
fprintf(f, "REMOTE_HOST=%s\n", escaped);
}
if (s->desktop)
fprintf(f, "DESKTOP=%s\n", s->desktop);
if (s->remote_user) {
_cleanup_free_ char *escaped;
escaped = cescape(s->remote_user);
if (!escaped) {
r = -ENOMEM;
goto finish;
}
fprintf(f, "REMOTE_USER=%s\n", escaped);
}
if (s->service) {
_cleanup_free_ char *escaped;
escaped = cescape(s->service);
if (!escaped) {
r = -ENOMEM;
goto finish;
}
fprintf(f, "SERVICE=%s\n", escaped);
}
if (s->desktop) {
_cleanup_free_ char *escaped;
escaped = cescape(s->desktop);
if (!escaped) {
r = -ENOMEM;
goto finish;
}
fprintf(f, "DESKTOP=%s\n", escaped);
}
if (s->seat && seat_has_vts(s->seat))
fprintf(f, "VTNR=%u\n", s->vtnr);