• Bug#1108549: procps: w segfaults when run as non-root user

    From Craig Small@21:1/5 to Andrew Bower on Mon Jul 28 11:40:01 2025
    On Fri, 25 Jul 2025 at 04:17, Andrew Bower <[email protected]> wrote:

    1. Unitialised 'sessions' variable is a a bug on all systems which leads
    to a segfault on some. I'm now tagging this bug as having a patch.

    Yep, that makes sense. Upstream have this set to 0 so it got missed.


    2. elogind not being queried. Is this an elogind issue? Should it give a
    different answer to sd_booted() or is this the wrong way to detect the
    seat management capability? 'who' does not have this problem - it
    somehow queries elogind anyway.

    elogind always returns 0 for sd_booted().
    Maybe who doesn't look at sd_booted() and directly goes to
    sd_get_sessions()?



    procps then resorts to utmp.

    And everything else beyond this is issues with utmp handling.

    Also
    $ who
    ajb85 seat0 2025-07-23 21:17
    ajb85 tty1 2025-07-23 21:17
    is the wrong output as its not checking for user sessions with sd_session_get_class()

    - Craig

    <div dir="ltr"><div dir="ltr">On Fri, 25 Jul 2025 at 04:17, Andrew Bower &lt;<a href="mailto:[email protected]">[email protected]</a>&gt; wrote:</div><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.
    8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">1. Unitialised &#39;sessions&#39; variable is a a bug on all systems which leads<br>
       to a segfault on some. I&#39;m now tagging this bug as having a patch.<br></blockquote><div>Yep, that makes sense. Upstream have this set to 0 so it got missed.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;
    border-left:1px solid rgb(204,204,204);padding-left:1ex">
    2. elogind not being queried. Is this an elogind issue? Should it give a<br>
       different answer to sd_booted() or is this the wrong way to detect the<br>    seat management capability? &#39;who&#39; does not have this problem - it<br>
       somehow queries elogind anyway.<br></blockquote><div>elogind always returns 0 for sd_booted().</div><div>Maybe who doesn&#39;t look at sd_booted() and directly goes to sd_get_sessions()?</div><div><br></div><div> <br></div><blockquote class="gmail_
    quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
    procps then resorts to utmp.<br></blockquote><div>And everything else beyond this is issues with utmp handling.</div></div><div class="gmail_quote gmail_quote_container"><br></div><div class="gmail_quote gmail_quote_container">Also</div><div class="gmail_
    quote gmail_quote_container">$ who<br>
    ajb85    seat0        2025-07-23 21:17<br>
    ajb85    tty1         2025-07-23 21:17</div><div class="gmail_quote gmail_quote_container">is the wrong output as its not checking for user sessions with sd_session_get_class()</div><div class="gmail_quote gmail_quote_container"><br></div><div
    class="gmail_quote gmail_quote_container"> - Craig</div><div class="gmail_quote gmail_quote_container"><br></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)