X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogind-dbus.c;fp=src%2Flogind-dbus.c;h=0550d1bd1cc6b29ebe698c6d3e0a4644ed292d89;hb=688c56ff7d124124007761f917a2950364509043;hp=bc1e49d18fa2cd4450bc2ddfab9a8199981f6672;hpb=a724d2ed799a8985193ba70c5c3e76f621815e10;p=elogind.git diff --git a/src/logind-dbus.c b/src/logind-dbus.c index bc1e49d18..0550d1bd1 100644 --- a/src/logind-dbus.c +++ b/src/logind-dbus.c @@ -973,8 +973,11 @@ static DBusHandlerResult manager_message_handler( } else if (dbus_message_is_method_call(message, "org.freedesktop.login1.Manager", "CreateSession")) { r = bus_manager_create_session(m, message, &reply); - if (r == -ENOMEM) - goto oom; + + /* Don't delay the work on OOM here, since it might be + * triggered by a low RLIMIT_NOFILE here (since we + * send a dupped fd to the client), and we'd rather + * see this fail quickly then be retried later */ if (r < 0) return bus_send_error_reply(connection, message, &error, r);