Fix possible media extractor service crash

Change-Id: I7501eee0d375745243a9e9acceacd526b6f322b7
diff --git a/media/libmedia/IMediaExtractorService.cpp b/media/libmedia/IMediaExtractorService.cpp
index 51a3c1a..dcbbde2 100644
--- a/media/libmedia/IMediaExtractorService.cpp
+++ b/media/libmedia/IMediaExtractorService.cpp
@@ -65,7 +65,13 @@
 
         case MAKE_EXTRACTOR: {
             CHECK_INTERFACE(IMediaExtractorService, data, reply);
-            sp<IDataSource> source = interface_cast<IDataSource>(data.readStrongBinder());
+            sp<IBinder> b;
+            status_t ret = data.readStrongBinder(&b);
+            if (ret != NO_ERROR || b == NULL) {
+                ALOGE("Error reading source from parcel");
+                return ret;
+            }
+            sp<IDataSource> source = interface_cast<IDataSource>(b);
             const char *mime = data.readCString();
             sp<IMediaExtractor> ex = makeExtractor(source, mime);
             reply->writeStrongBinder(IInterface::asBinder(ex));