crash_sender: ignore missing files to prevent upload failure

Don't try to upload missing files, instead send the reports without them to
avoid failure in curl, breaking the cycle of try-fail-try-fail.

BUG=chromium:338977
TEST=manual test by copying the script to a Chromebook
CQ-DEPEND=CL:200061

Change-Id: If35828b48b7746bdfae519e4777cc0d7e9245e0e
Reviewed-on: https://chromium-review.googlesource.com/199070
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/crash_reporter/crash_sender b/crash_reporter/crash_sender
index 9b96205..43fd24c 100755
--- a/crash_reporter/crash_sender
+++ b/crash_reporter/crash_sender
@@ -308,7 +308,11 @@
       -F "sig=${sig}" \
       -F "sig2=${sig}"
   fi
-  if [ "${log}" != "undefined" ]; then
+  if [ -r "${report_payload}" ]; then
+    set -- "$@" \
+      -F "upload_file_${kind}=@${report_payload}"
+  fi
+  if [ "${log}" != "undefined" -a -r "${log}" ]; then
     set -- "$@" \
       -F "log=@${log}"
   fi
@@ -325,8 +329,14 @@
       # Product & version are handled separately.
       upload_var_prod) ;;
       upload_var_ver) ;;
-      upload_var_*) set -- "$@" -F "${upload_prefix}${k#upload_var_}=${v}" ;;
-      upload_file_*) set -- "$@" -F "${upload_prefix}${k#upload_file_}=@${v}" ;;
+      upload_var_*)
+        set -- "$@" -F "${upload_prefix}${k#upload_var_}=${v}"
+        ;;
+      upload_file_*)
+        if [ -r "${v}" ]; then
+          set -- "$@" -F "${upload_prefix}${k#upload_file_}=@${v}"
+        fi
+        ;;
     esac
   done
 
@@ -430,7 +440,6 @@
     --capath "${RESTRICTED_CERTIFICATES_PATH}" --ciphers HIGH \
     -F "prod=${product}" \
     -F "ver=${version}" \
-    -F "upload_file_${kind}=@${report_payload}" \
     -F "board=${board}" \
     -F "hwclass=${hwclass}" \
     -F "exec_name=${exec_name}" \