mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-10-03 23:38:39 +00:00
logind: also escape external data when saving to /run
Better be safe than sorry...
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user