logd: iterator corruption paranoia

(cherry pick from commit 311ba44442e4efdd9e0b1b238397210372ccd875)

Add checking for impossible(tm) scenarios within LogBuffer::flushTo:

1) When iterating through the log entries, check if the iterator
   returns two identical element references and break out of the loop.
2) Cap the maximum number of log entries we will skip while holding
   the iterator lock at 4194304, break out of the loop.

We print a message to the kernel logs if we hit these cases.

ToDo: Remove this paranoia at some future date.

Test: gTest liblog-unit-tests logcat-unit-tests and logd-unit-tests
Bug: 37378309
Change-Id: I789594649db14093238828b9f6d1daeca8b780c2
1 file changed
tree: 33d7c52b11b48459739633d98ddcbf318306cda8
  1. liblog/
  2. logcat/
  3. logd/
  4. logwrapper/