Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 297e6f85 authored by Joel Scherpelz's avatar Joel Scherpelz Committed by syphyr
Browse files

BACKPORT: Avoid netlink socket address conflict



NetlinkManager previously bound all netlink sockets with nl_pid =
getpid(). Unfortunately only the first such socket is allowed to claim
nl_pid = getpid(). The kernel is happy to assign this value
automatically if nl_pid = 0. For more information on nl_pid see "man 7
netlink".

When NFLogListener was added, it created a socket with a kernel assigned
nl_pid, unfortunately the kernel assigns getpid() to the first such
socket and listener was initialized earlier in the startup process than
NetlinkManager.

This change alters NetlinkManager to request a kernel assigned nl_pid and
defensively moves the initialization of NFLogListener later in the
startup sequence to favor proper operation of existing code in
NetlinkManager. Error logging is also slightly improved.

Test: as follows
    - built
    - flashed
    - booted
    - "runtest -x .../netd_unit_test.cpp" passes
    - "cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t
       android.os.cts.StrictModeTest" passes
Bug: 62353125

[syphyr: Removed NFLogListener changes]
Signed-off-by: default avatarL.W. Reek <syphyr@gmail.com>

Change-Id: I9c1c76e5769de75ff624bf43634ac4061c447a72
parent 0cd7a28a
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment