diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2016-08-11 16:35:32 +1200 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2016-08-11 16:35:32 +1200 |
commit | a4041eed68e617d606fc37f8450f552323cdb274 (patch) | |
tree | c4249306d8908a49283f665691dcac30c7313afa | |
parent | d4e476226f6359b12d334823dc62f57090c074ef (diff) | |
parent | 1283985fdb64f037b752c7f77b787b4d6415dd6a (diff) | |
download | lightdm-git-a4041eed68e617d606fc37f8450f552323cdb274.tar.gz |
Fix reference count when creating sessions from greeters
-rw-r--r-- | src/seat.c | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/scripts/session-greeter-unlock-twice.conf | 54 | ||||
-rwxr-xr-x | tests/test-session-greeter-unlock-twice | 2 |
4 files changed, 59 insertions, 1 deletions
@@ -1887,7 +1887,7 @@ seat_real_create_greeter_session (Seat *seat) static Session * create_session_cb (Greeter *greeter, Seat *seat) { - return create_session (seat, FALSE); + return g_object_ref (create_session (seat, FALSE)); } static Greeter * diff --git a/tests/Makefile.am b/tests/Makefile.am index 24f102c8..d857007e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -172,6 +172,7 @@ TESTS = \ test-session-greeter-autologin \ test-session-greeter-reconnect \ test-session-greeter-unlock \ + test-session-greeter-unlock-twice \ test-vnc-login \ test-vnc-command \ test-vnc-dimensions \ @@ -555,6 +556,7 @@ EXTRA_DIST = \ scripts/session-greeter-autologin.conf \ scripts/session-greeter-reconnect.conf \ scripts/session-greeter-unlock.conf \ + scripts/session-greeter-unlock-twice.conf \ scripts/session-stdout.conf \ scripts/session-stderr.conf \ scripts/session-stderr-multi-write.conf \ diff --git a/tests/scripts/session-greeter-unlock-twice.conf b/tests/scripts/session-greeter-unlock-twice.conf new file mode 100644 index 00000000..fc6d053f --- /dev/null +++ b/tests/scripts/session-greeter-unlock-twice.conf @@ -0,0 +1,54 @@ +# +# Check can unlock user with an in-session greeter and re-lock again +# + +[Seat:*] +autologin-user=have-password1 +user-session=greeter + +#?*START-DAEMON +#?RUNNER DAEMON-START + +# X server starts +#?XSERVER-0 START VT=7 SEAT=seat0 + +# Daemon connects when X server is ready +#?*XSERVER-0 INDICATE-READY +#?XSERVER-0 INDICATE-READY +#?XSERVER-0 ACCEPT-CONNECT + +# Session starts +#?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 +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 +#?XSERVER-0 ACCEPT-CONNECT +#?SESSION-X-0 CONNECT-XSERVER + +# Start greeter inside session +#?*SESSION-X-0 GREETER-START +#?SESSION-X-0 GREETER-STARTED + +# Log into our account +#?*SESSION-X-0 GREETER-AUTHENTICATE USERNAME=have-password1 +#?SESSION-X-0 GREETER-SHOW-PROMPT TEXT="Password:" +#?*SESSION-X-0 GREETER-RESPOND TEXT="password" +#?SESSION-X-0 GREETER-AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*SESSION-X-0 GREETER-START-SESSION + +# We are reactivated +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Authenticate again +#?*SESSION-X-0 GREETER-AUTHENTICATE USERNAME=have-password1 +#?SESSION-X-0 GREETER-SHOW-PROMPT TEXT="Password:" +#?*SESSION-X-0 GREETER-RESPOND TEXT="password" +#?SESSION-X-0 GREETER-AUTHENTICATION-COMPLETE USERNAME=have-password1 AUTHENTICATED=TRUE +#?*SESSION-X-0 GREETER-START-SESSION + +# We are reactivated +#?LOGIN1 ACTIVATE-SESSION SESSION=c0 + +# Cleanup +#?*STOP-DAEMON +#?SESSION-X-0 TERMINATE SIGNAL=15 +#?XSERVER-0 TERMINATE SIGNAL=15 +#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/test-session-greeter-unlock-twice b/tests/test-session-greeter-unlock-twice new file mode 100755 index 00000000..3554d0a7 --- /dev/null +++ b/tests/test-session-greeter-unlock-twice @@ -0,0 +1,2 @@ +#!/bin/sh +./src/dbus-env ./src/test-runner session-greeter-unlock-twice test-gobject-greeter |