mirror of
https://github.com/systemd/systemd.git
synced 2026-08-09 01:20:53 +00:00
logind: always enclose list fields (that may contain spaces) in quotes
This commit is contained in:
@@ -129,20 +129,19 @@ int seat_save(Seat *s) {
|
||||
}
|
||||
|
||||
if (s->sessions) {
|
||||
fputs("SESSIONS=", f);
|
||||
LIST_FOREACH(sessions_by_seat, i, s->sessions) {
|
||||
fprintf(f,
|
||||
"%s%c",
|
||||
i->id,
|
||||
i->sessions_by_seat_next ? ' ' : '\n');
|
||||
}
|
||||
|
||||
fputs("UIDS=", f);
|
||||
fputs("SESSIONS=\"", f);
|
||||
LIST_FOREACH(sessions_by_seat, i, s->sessions)
|
||||
fprintf(f,
|
||||
UID_FMT"%c",
|
||||
"%s%s",
|
||||
i->id,
|
||||
i->sessions_by_seat_next ? " " : "\"\n");
|
||||
|
||||
fputs("UIDS=\"", f);
|
||||
LIST_FOREACH(sessions_by_seat, i, s->sessions)
|
||||
fprintf(f,
|
||||
UID_FMT"%s",
|
||||
i->user->user_record->uid,
|
||||
i->sessions_by_seat_next ? ' ' : '\n');
|
||||
i->sessions_by_seat_next ? " " : "\"\n");
|
||||
}
|
||||
|
||||
r = flink_tmpfile(f, temp_path, s->state_file, LINK_TMPFILE_REPLACE);
|
||||
|
||||
@@ -267,12 +267,19 @@ int session_set_leader_consume(Session *s, PidRef _leader) {
|
||||
static void session_save_devices(Session *s, FILE *f) {
|
||||
SessionDevice *sd;
|
||||
|
||||
if (!hashmap_isempty(s->devices)) {
|
||||
fprintf(f, "DEVICES=");
|
||||
HASHMAP_FOREACH(sd, s->devices)
|
||||
fprintf(f, DEVNUM_FORMAT_STR " ", DEVNUM_FORMAT_VAL(sd->dev));
|
||||
fprintf(f, "\n");
|
||||
if (hashmap_isempty(s->devices))
|
||||
return;
|
||||
|
||||
bool need_space = false;
|
||||
fputs("DEVICES=\"", f);
|
||||
HASHMAP_FOREACH(sd, s->devices) {
|
||||
if (need_space)
|
||||
fputc(' ', f);
|
||||
|
||||
fprintf(f, DEVNUM_FORMAT_STR, DEVNUM_FORMAT_VAL(sd->dev));
|
||||
need_space = true;
|
||||
}
|
||||
fputs("\"\n", f);
|
||||
}
|
||||
|
||||
int session_save(Session *s) {
|
||||
|
||||
@@ -194,7 +194,7 @@ static int user_save_internal(User *u) {
|
||||
if (u->sessions) {
|
||||
bool first;
|
||||
|
||||
fputs("SESSIONS=", f);
|
||||
fputs("SESSIONS=\"", f);
|
||||
first = true;
|
||||
LIST_FOREACH(sessions_by_user, i, u->sessions) {
|
||||
if (first)
|
||||
@@ -205,7 +205,8 @@ static int user_save_internal(User *u) {
|
||||
fputs(i->id, f);
|
||||
}
|
||||
|
||||
fputs("\nSEATS=", f);
|
||||
fputs("\"\n"
|
||||
"SEATS=\"", f);
|
||||
first = true;
|
||||
LIST_FOREACH(sessions_by_user, i, u->sessions) {
|
||||
if (!i->seat)
|
||||
@@ -219,7 +220,8 @@ static int user_save_internal(User *u) {
|
||||
fputs(i->seat->id, f);
|
||||
}
|
||||
|
||||
fputs("\nACTIVE_SESSIONS=", f);
|
||||
fputs("\"\n"
|
||||
"ACTIVE_SESSIONS=\"", f);
|
||||
first = true;
|
||||
LIST_FOREACH(sessions_by_user, i, u->sessions) {
|
||||
if (!session_is_active(i))
|
||||
@@ -233,7 +235,8 @@ static int user_save_internal(User *u) {
|
||||
fputs(i->id, f);
|
||||
}
|
||||
|
||||
fputs("\nONLINE_SESSIONS=", f);
|
||||
fputs("\"\n"
|
||||
"ONLINE_SESSIONS=\"", f);
|
||||
first = true;
|
||||
LIST_FOREACH(sessions_by_user, i, u->sessions) {
|
||||
if (session_get_state(i) == SESSION_CLOSING)
|
||||
@@ -247,7 +250,8 @@ static int user_save_internal(User *u) {
|
||||
fputs(i->id, f);
|
||||
}
|
||||
|
||||
fputs("\nACTIVE_SEATS=", f);
|
||||
fputs("\"\n"
|
||||
"ACTIVE_SEATS=\"", f);
|
||||
first = true;
|
||||
LIST_FOREACH(sessions_by_user, i, u->sessions) {
|
||||
if (!session_is_active(i) || !i->seat)
|
||||
@@ -261,7 +265,8 @@ static int user_save_internal(User *u) {
|
||||
fputs(i->seat->id, f);
|
||||
}
|
||||
|
||||
fputs("\nONLINE_SEATS=", f);
|
||||
fputs("\"\n"
|
||||
"ONLINE_SEATS=\"", f);
|
||||
first = true;
|
||||
LIST_FOREACH(sessions_by_user, i, u->sessions) {
|
||||
if (session_get_state(i) == SESSION_CLOSING || !i->seat)
|
||||
@@ -274,7 +279,7 @@ static int user_save_internal(User *u) {
|
||||
|
||||
fputs(i->seat->id, f);
|
||||
}
|
||||
fputc('\n', f);
|
||||
fputs("\"\n", f);
|
||||
}
|
||||
|
||||
r = flink_tmpfile(f, temp_path, u->state_file, LINK_TMPFILE_REPLACE);
|
||||
|
||||
Reference in New Issue
Block a user