qdutils: correct error checking of MetaData's handle mapping
In term of Linux manual, mmap() returns MAP_FAILED in case of
error, so current checking against NULL is not valid.
Change-Id: Iee6920b6478843a0c1cd62bdbe3e4b652a39c583
diff --git a/libqdutils/qdMetaData.cpp b/libqdutils/qdMetaData.cpp
index 0390599..dbd6f10 100644
--- a/libqdutils/qdMetaData.cpp
+++ b/libqdutils/qdMetaData.cpp
@@ -27,6 +27,7 @@
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <errno.h>
#include <string.h>
#include <sys/mman.h>
#include <cutils/log.h>
@@ -52,8 +53,8 @@
unsigned long size = ROUND_UP_PAGESIZE(sizeof(MetaData_t));
void *base = mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_SHARED,
handle->fd_metadata, 0);
- if (!base) {
- ALOGE("%s: mmap() failed: Base addr is NULL!", __func__);
+ if (base == reinterpret_cast<void*>(MAP_FAILED)) {
+ ALOGE("%s: mmap() failed: error is %s!", __func__, strerror(errno));
return -1;
}
MetaData_t *data = reinterpret_cast <MetaData_t *>(base);