When the extractor is not able to be created successfully, don't crash
diff --git a/cmds/stagefright/record.cpp b/cmds/stagefright/record.cpp
index 2ec0b70..845c854 100644
--- a/cmds/stagefright/record.cpp
+++ b/cmds/stagefright/record.cpp
@@ -106,6 +106,9 @@
 
     sp<MediaExtractor> extractor =
         MediaExtractor::Create(new FileSource(filename));
+    if (extractor == NULL) {
+        return NULL;
+    }
 
     size_t num_tracks = extractor->countTracks();
 
diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp
index e65cdf1..f7cb2273 100644
--- a/cmds/stagefright/stagefright.cpp
+++ b/cmds/stagefright/stagefright.cpp
@@ -431,6 +431,10 @@
             mediaSource = new JPEGSource(dataSource);
         } else {
             sp<MediaExtractor> extractor = MediaExtractor::Create(dataSource);
+            if (extractor == NULL) {
+                fprintf(stderr, "could not create data source\n");
+                return -1;
+            }
 
             size_t numTracks = extractor->countTracks();
 
diff --git a/media/libstagefright/omx/tests/OMXHarness.cpp b/media/libstagefright/omx/tests/OMXHarness.cpp
index 51fcaf5..c05d90a 100644
--- a/media/libstagefright/omx/tests/OMXHarness.cpp
+++ b/media/libstagefright/omx/tests/OMXHarness.cpp
@@ -512,7 +512,9 @@
 
     sp<MediaExtractor> extractor = CreateExtractorFromURI(url);
 
-    CHECK(extractor != NULL);
+    if (extractor == NULL) {
+        return NULL;
+    }
 
     for (size_t i = 0; i < extractor->countTracks(); ++i) {
         sp<MetaData> meta = extractor->getTrackMetaData(i);
@@ -571,6 +573,10 @@
     sp<MediaSource> source = CreateSourceForMime(mime);
 
     sp<MediaSource> seekSource = CreateSourceForMime(mime);
+    if (source == NULL || seekSource == NULL) {
+        return UNKNOWN_ERROR;
+    }
+
     CHECK_EQ(seekSource->start(), OK);
 
     sp<MediaSource> codec = OMXCodec::Create(