pdfviewer: more simple fixed to prevent crashes

Review URL: https://codereview.chromium.org/19625008

git-svn-id: http://skia.googlecode.com/svn/trunk@10294 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/PdfViewer/pdfparser/native/SkPdfNativeTokenizer.cpp b/experimental/PdfViewer/pdfparser/native/SkPdfNativeTokenizer.cpp
index cc5788b..7d8bcb6 100644
--- a/experimental/PdfViewer/pdfparser/native/SkPdfNativeTokenizer.cpp
+++ b/experimental/PdfViewer/pdfparser/native/SkPdfNativeTokenizer.cpp
@@ -125,6 +125,11 @@
 
 // last elem has to be ]
 static const unsigned char* readArray(int level, const unsigned char* start, const unsigned char* end, SkPdfObject* array, SkPdfAllocator* allocator, SkNativeParsedPDF* doc) {
+    if (allocator == NULL) {
+        // TODO(edisonn): report/warning error
+        return end;
+    }
+
     TRACE_INDENT(level, "Array");
     while (start < end) {
         // skip white spaces
@@ -208,7 +213,7 @@
                         break;
 
                     case 'f':
-                        *out = kFF_PdfWhiteSpace;
+                        if (hasOut) { *out = kFF_PdfWhiteSpace; }
                         out++;
                         in += 2;
                         break;
@@ -693,6 +698,10 @@
 }
 
 static const unsigned char* readDictionary(int level, const unsigned char* start, const unsigned char* end, SkPdfObject* dict, SkPdfAllocator* allocator, SkNativeParsedPDF* doc) {
+    if (allocator == NULL) {
+        // TODO(edisonn): report/warning error
+        return end;
+    }
     TRACE_INDENT(level, "Dictionary");
     SkPdfObject::makeEmptyDictionary(dict);