Merge "applypatch: Fix the checking in WriteToPartition()."
diff --git a/applypatch/applypatch.cpp b/applypatch/applypatch.cpp
index 2446b2a..751d3e3 100644
--- a/applypatch/applypatch.cpp
+++ b/applypatch/applypatch.cpp
@@ -312,13 +312,14 @@
 }
 
 // Write a memory buffer to 'target' partition, a string of the form
-// "MTD:<partition>[:...]" or "EMMC:<partition_device>".  Return 0 on
-// success.
+// "MTD:<partition>[:...]" or "EMMC:<partition_device>[:...]". The target name
+// might contain multiple colons, but WriteToPartition() only uses the first
+// two and ignores the rest. Return 0 on success.
 int WriteToPartition(unsigned char* data, size_t len, const char* target) {
     std::string copy(target);
     std::vector<std::string> pieces = android::base::Split(copy, ":");
 
-    if (pieces.size() != 2) {
+    if (pieces.size() < 2) {
         printf("WriteToPartition called with bad target (%s)\n", target);
         return -1;
     }