libsysutils: only accept uevents from the kernel.

Addresses CVE-2011-1823.

Change-Id: I393c21da749a6a6491d6719767bc1ff3df647ebe
This commit is contained in:
Vernon Tang 2011-04-25 03:13:44 +10:00
parent 3f582e92f0
commit 80b0162910

View file

@ -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;
}