From 69a5f6c3e04aa0f3f87eed7578a32782c97bd48f Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Fri, 2 Sep 2011 09:34:51 -0700 Subject: [PATCH] Properly serialize access to FileSource::getSize by acquiring the mutex Both ::getSize and ::read call into lseek64, if this happens simultaneously from multiple threads the results are undefined if not properly serialized. Change-Id: I737cafebd836f3d8eb702beac557b4731f69c6f6 related-to-bug: 5196490 --- media/libstagefright/FileSource.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/media/libstagefright/FileSource.cpp b/media/libstagefright/FileSource.cpp index f2f3500a71c8a..0794f5770df46 100644 --- a/media/libstagefright/FileSource.cpp +++ b/media/libstagefright/FileSource.cpp @@ -110,6 +110,8 @@ ssize_t FileSource::readAt(off64_t offset, void *data, size_t size) { } status_t FileSource::getSize(off64_t *size) { + Mutex::Autolock autoLock(mLock); + if (mFd < 0) { return NO_INIT; }