logd: klogd deal with nuls in dmesg

Switch to using string and length in all transactions, treating
trailing nuls the same as spaces.

ToDo: change dumpstate (bugreport) to use logcat -b printable _regardless_

Bug: 23517551
Change-Id: I42162365e6bf8ed79d356e7b689a673902116fdb
diff --git a/logd/main.cpp b/logd/main.cpp
index aa447f9..cbdf0b6 100644
--- a/logd/main.cpp
+++ b/logd/main.cpp
@@ -301,7 +301,7 @@
     buf[--len] = '\0';
 
     if (kl) {
-        kl->synchronize(buf.get());
+        kl->synchronize(buf.get(), len);
     }
 
     size_t sublen;
@@ -309,10 +309,10 @@
          (rc >= 0) && ((tok = log_strntok_r(tok, &len, &ptr, &sublen)));
          tok = NULL) {
         if (al) {
-            rc = al->log(tok);
+            rc = al->log(tok, sublen);
         }
         if (kl) {
-            rc = kl->log(tok);
+            rc = kl->log(tok, sublen);
         }
     }
 }