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

Commit 80b01629 authored by Vernon Tang's avatar Vernon Tang
Browse files

libsysutils: only accept uevents from the kernel.

Addresses CVE-2011-1823.

Change-Id: I393c21da749a6a6491d6719767bc1ff3df647ebe
parent 3f582e92
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@

#define LOG_TAG "NetlinkListener"
#include <cutils/log.h>
#include <cutils/uevent.h>

#include <sysutils/NetlinkListener.h>
#include <sysutils/NetlinkEvent.h>
@@ -34,7 +35,7 @@ bool NetlinkListener::onDataAvailable(SocketClient *cli)
    int socket = cli->getSocket();
    int count;

    if ((count = recv(socket, mBuffer, sizeof(mBuffer), 0)) < 0) {
    if ((count = uevent_checked_recv(socket, mBuffer, sizeof(mBuffer))) < 0) {
        SLOGE("recv failed (%s)", strerror(errno));
        return false;
    }