Skip to content

Commit a4041ee

Browse files
committed
Fix reference count when creating sessions from greeters
2 parents d4e4762 + 1283985 commit a4041ee

File tree

4 files changed

+59
-1
lines changed

4 files changed

+59
-1
lines changed

src/seat.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1887,7 +1887,7 @@ seat_real_create_greeter_session (Seat *seat)
18871887
static Session *
18881888
create_session_cb (Greeter *greeter, Seat *seat)
18891889
{
1890-
return create_session (seat, FALSE);
1890+
return g_object_ref (create_session (seat, FALSE));
18911891
}
18921892

18931893
static Greeter *

tests/Makefile.am

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ TESTS = \
172172
test-session-greeter-autologin \
173173
test-session-greeter-reconnect \
174174
test-session-greeter-unlock \
175+
test-session-greeter-unlock-twice \
175176
test-vnc-login \
176177
test-vnc-command \
177178
test-vnc-dimensions \
@@ -555,6 +556,7 @@ EXTRA_DIST = \
555556
scripts/session-greeter-autologin.conf \
556557
scripts/session-greeter-reconnect.conf \
557558
scripts/session-greeter-unlock.conf \
559+
scripts/session-greeter-unlock-twice.conf \
558560
scripts/session-stdout.conf \
559561
scripts/session-stderr.conf \
560562
scripts/session-stderr-multi-write.conf \
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#
2+
# Check can unlock user with an in-session greeter and re-lock again
3+
#
4+
5+
[Seat:*]
6+
autologin-user=have-password1
7+
user-session=greeter
8+
9+
#?*START-DAEMON
10+
#?RUNNER DAEMON-START
11+
12+
# X server starts
13+
#?XSERVER-0 START VT=7 SEAT=seat0
14+
15+
# Daemon connects when X server is ready
16+
#?*XSERVER-0 INDICATE-READY
17+
#?XSERVER-0 INDICATE-READY
18+
#?XSERVER-0 ACCEPT-CONNECT
19+
20+
# Session starts
21+
#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 XDG_GREETER_DATA_DIR=.*/have-password1 XDG_SESSION_TYPE=x11 XDG_SESSION_DESKTOP=greeter USER=have-password1
22+
#?LOGIN1 ACTIVATE-SESSION SESSION=c0
23+
#?XSERVER-0 ACCEPT-CONNECT
24+
#?SESSION-X-0 CONNECT-XSERVER
25+
26+
# Start greeter inside session
27+
#?*SESSION-X-0 GREETER-START
28+
#?SESSION-X-0 GREETER-STARTED
29+
30+
# Log into our account
31+
#?*SESSION-X-0 GREETER-AUTHENTICATE USERNAME=have-password1
32+
#?SESSION-X-0 GREETER-SHOW-PROMPT TEXT="Password:"
33+
#?*SESSION-X-0 GREETER-RESPOND TEXT="password"
34+
#?SESSION-X-0 GREETER-AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
35+
#?*SESSION-X-0 GREETER-START-SESSION
36+
37+
# We are reactivated
38+
#?LOGIN1 ACTIVATE-SESSION SESSION=c0
39+
40+
# Authenticate again
41+
#?*SESSION-X-0 GREETER-AUTHENTICATE USERNAME=have-password1
42+
#?SESSION-X-0 GREETER-SHOW-PROMPT TEXT="Password:"
43+
#?*SESSION-X-0 GREETER-RESPOND TEXT="password"
44+
#?SESSION-X-0 GREETER-AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE
45+
#?*SESSION-X-0 GREETER-START-SESSION
46+
47+
# We are reactivated
48+
#?LOGIN1 ACTIVATE-SESSION SESSION=c0
49+
50+
# Cleanup
51+
#?*STOP-DAEMON
52+
#?SESSION-X-0 TERMINATE SIGNAL=15
53+
#?XSERVER-0 TERMINATE SIGNAL=15
54+
#?RUNNER DAEMON-EXIT STATUS=0
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
./src/dbus-env ./src/test-runner session-greeter-unlock-twice test-gobject-greeter

0 commit comments

Comments
 (0)