From: Lingyun Zhu Date: Tue, 20 Nov 2012 11:24:35 +0000 (+0800) Subject: Graphics:Add error check when create GraphicBuffer X-Git-Tag: android-x86-6.0-r1~1135^2^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2aff7025482cc40d2ebd45f81cdb318ac1c6f868;p=android-x86%2Fframeworks-native.git Graphics:Add error check when create GraphicBuffer Change-Id: Ib0ca59bf1dfe4ae0266c29c91c1dbe3d02c0904e Author: Lingyun Zhu Signed-off-by: Lingyun Zhu Signed-off-by: Shuo Gao Signed-off-by: Bruce Beare Signed-off-by: Jack Ren Author-tracking-BZ: 50141 --- diff --git a/libs/gui/IGraphicBufferProducer.cpp b/libs/gui/IGraphicBufferProducer.cpp index 63d7628a55..c33543958b 100644 --- a/libs/gui/IGraphicBufferProducer.cpp +++ b/libs/gui/IGraphicBufferProducer.cpp @@ -62,7 +62,11 @@ public: bool nonNull = reply.readInt32(); if (nonNull) { *buf = new GraphicBuffer(); - reply.read(**buf); + result = reply.read(**buf); + if(result != NO_ERROR) { + (*buf).clear(); + return result; + } } result = reply.readInt32(); return result; diff --git a/libs/ui/GraphicBuffer.cpp b/libs/ui/GraphicBuffer.cpp index 580788d0e9..83ae469833 100644 --- a/libs/ui/GraphicBuffer.cpp +++ b/libs/ui/GraphicBuffer.cpp @@ -281,6 +281,8 @@ status_t GraphicBuffer::unflatten(void const* buffer, size_t size, if (handle != 0) { status_t err = mBufferMapper.registerBuffer(handle); if (err != NO_ERROR) { + width = height = stride = format = usage = 0; + handle = NULL; ALOGE("unflatten: registerBuffer failed: %s (%d)", strerror(-err), err); return err;