From 479c8c2e4261f7a8f3ef2ac58395f7008b5b0aa8 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Wed, 22 Mar 2017 14:58:53 -0700 Subject: [PATCH] logd: strip out empty trailing iovec If the last buffer has zero length, strip it out of the iovec issued to SocketClient::sendDatav(). Test: gTest liblog-unit-tests, logd-unit-tests, logcat-unit-tests Bug: 36497967 Change-Id: I8fc585bbec63402d0e818ff4c620fdd7edcc38dc --- logd/LogBufferElement.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/logd/LogBufferElement.cpp b/logd/LogBufferElement.cpp index 81356fea5..04a620c5c 100644 --- a/logd/LogBufferElement.cpp +++ b/logd/LogBufferElement.cpp @@ -235,7 +235,9 @@ log_time LogBufferElement::flushTo(SocketClient* reader, LogBuffer* parent, } iovec[1].iov_len = entry.len; - log_time retval = reader->sendDatav(iovec, 2) ? FLUSH_ERROR : mRealTime; + log_time retval = reader->sendDatav(iovec, 1 + (entry.len != 0)) + ? FLUSH_ERROR + : mRealTime; if (buffer) free(buffer);