diff options
Diffstat (limited to 'media/libmedia/IDataSource.cpp')
-rw-r--r-- | media/libmedia/IDataSource.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/media/libmedia/IDataSource.cpp b/media/libmedia/IDataSource.cpp index 76d1d68ef8..a969c7db6e 100644 --- a/media/libmedia/IDataSource.cpp +++ b/media/libmedia/IDataSource.cpp @@ -50,8 +50,16 @@ struct BpDataSource : public BpInterface<IDataSource> { data.writeInterfaceToken(IDataSource::getInterfaceDescriptor()); data.writeInt64(offset); data.writeInt64(size); - remote()->transact(READ_AT, data, &reply); - return reply.readInt64(); + status_t err = remote()->transact(READ_AT, data, &reply); + if (err != OK) { + return err; + } + int64_t value = 0; + err = reply.readInt64(&value); + if (err != OK) { + return err; + } + return (ssize_t)value; } virtual status_t getSize(off64_t* size) { |