From da62e7c00259f6b98696cedb7d031f04951caef0 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Wed, 24 Mar 2010 20:18:00 -0700 Subject: [PATCH] Revert "Prevent null pointer deref in DirectVolume" This reverts commit a9f423dd7e313854ce7c103e1bb4661b05efc9a4. --- DirectVolume.cpp | 45 ++++++++++++--------------------------------- DirectVolume.h | 15 --------------- 2 files changed, 12 insertions(+), 48 deletions(-) diff --git a/DirectVolume.cpp b/DirectVolume.cpp index 6af4ccb..fd99f0c 100644 --- a/DirectVolume.cpp +++ b/DirectVolume.cpp @@ -124,11 +124,8 @@ int DirectVolume::handleBlockEvent(NetlinkEvent *evt) { } void DirectVolume::handleDiskAdded(const char *devpath, NetlinkEvent *evt) { - int major, minor; - if (!getMajorMinorNum(evt, &major, &minor)) { - LOGE("Could not determine major:minor in handleDiskAdded"); - return; - } + mDiskMajor = atoi(evt->findParam("MAJOR")); + mDiskMinor = atoi(evt->findParam("MINOR")); const char *tmp = evt->findParam("NPARTS"); if (tmp) { @@ -167,11 +164,8 @@ void DirectVolume::handleDiskAdded(const char *devpath, NetlinkEvent *evt) { } void DirectVolume::handlePartitionAdded(const char *devpath, NetlinkEvent *evt) { - int major, minor; - if (!getMajorMinorNum(evt, &major, &minor)) { - LOGE("Could not determine major:minor in handlePartitionAdded"); - return; - } + int major = atoi(evt->findParam("MAJOR")); + int minor = atoi(evt->findParam("MINOR")); int part_num; @@ -213,11 +207,8 @@ void DirectVolume::handlePartitionAdded(const char *devpath, NetlinkEvent *evt) } void DirectVolume::handleDiskChanged(const char *devpath, NetlinkEvent *evt) { - int major, minor; - if (!getMajorMinorNum(evt, &major, &minor)) { - LOGE("Could not determine major:minor in handleDiskChanged"); - return; - } + int major = atoi(evt->findParam("MAJOR")); + int minor = atoi(evt->findParam("MINOR")); if ((major != mDiskMajor) || (minor != mDiskMinor)) { return; @@ -249,22 +240,14 @@ void DirectVolume::handleDiskChanged(const char *devpath, NetlinkEvent *evt) { } void DirectVolume::handlePartitionChanged(const char *devpath, NetlinkEvent *evt) { - int major, minor; - if (!getMajorMinorNum(evt, &major, &minor)) { - LOGE("Could not determine major:minor in handlePartitionChanged"); - return; - } - + int major = atoi(evt->findParam("MAJOR")); + int minor = atoi(evt->findParam("MINOR")); LOGD("Volume %s %s partition %d:%d changed\n", getLabel(), getMountpoint(), major, minor); } void DirectVolume::handleDiskRemoved(const char *devpath, NetlinkEvent *evt) { - int major, minor; - if (!getMajorMinorNum(evt, &major, &minor)) { - LOGE("Could not determine major:minor in handleDiskRemoved"); - return; - } - + int major = atoi(evt->findParam("MAJOR")); + int minor = atoi(evt->findParam("MINOR")); char msg[255]; LOGD("Volume %s %s disk %d:%d removed\n", getLabel(), getMountpoint(), major, minor); @@ -276,12 +259,8 @@ void DirectVolume::handleDiskRemoved(const char *devpath, NetlinkEvent *evt) { } void DirectVolume::handlePartitionRemoved(const char *devpath, NetlinkEvent *evt) { - int major, minor; - if (!getMajorMinorNum(evt, &major, &minor)) { - LOGE("Could not determine major:minor in handlePartitionRemoved"); - return; - } - + int major = atoi(evt->findParam("MAJOR")); + int minor = atoi(evt->findParam("MINOR")); char msg[255]; LOGD("Volume %s %s partition %d:%d removed\n", getLabel(), getMountpoint(), major, minor); diff --git a/DirectVolume.h b/DirectVolume.h index 3c95b4b..2a78236 100644 --- a/DirectVolume.h +++ b/DirectVolume.h @@ -18,7 +18,6 @@ #define _DEVICEVOLUME_H #include -#include #include "Volume.h" @@ -26,20 +25,6 @@ typedef android::List PathCollection; -inline bool getMajorMinorNum(NetlinkEvent *evt, int *major, int *minor) { - const char *major_str = evt->findParam("MAJOR"); - const char *minor_str = evt->findParam("MINOR"); - - if (major_str == NULL || minor_str == NULL) { - return false; - } - - *major = atoi(major_str); - *minor = atoi(minor_str); - - return true; -} - class DirectVolume : public Volume { public: static const int MAX_PARTITIONS = 4;