Fix buffer overflow in Trace's JNI layer

There doesn't appear to be anything better
than blindly make a buffer 4x the length of a
jstring if a maximum buffer size is useful.

So do that.

This does slightly regress Trace's performance.

Before:

android.os.TracePerfTest:INSTRUMENTATION_STATUS: enabled_mean=14
INSTRUMENTATION_STATUS: enabled_median=14
INSTRUMENTATION_STATUS: enabled_min=14
INSTRUMENTATION_STATUS: enabled_standardDeviation=0
INSTRUMENTATION_STATUS_CODE: -1
.INSTRUMENTATION_STATUS: beginEndSection_mean=3087
INSTRUMENTATION_STATUS: beginEndSection_median=3059
INSTRUMENTATION_STATUS: beginEndSection_min=3020
INSTRUMENTATION_STATUS: beginEndSection_standardDeviation=75
INSTRUMENTATION_STATUS_CODE: -1
.INSTRUMENTATION_STATUS: counter_mean=1893
INSTRUMENTATION_STATUS: counter_median=1900
INSTRUMENTATION_STATUS: counter_min=1851
INSTRUMENTATION_STATUS: counter_standardDeviation=26
INSTRUMENTATION_STATUS_CODE: -1
.INSTRUMENTATION_STATUS: asyncBeginEnd_mean=4281
INSTRUMENTATION_STATUS: asyncBeginEnd_median=4306
INSTRUMENTATION_STATUS: asyncBeginEnd_min=4184
INSTRUMENTATION_STATUS: asyncBeginEnd_standardDeviation=65
INSTRUMENTATION_STATUS_CODE: -1

After:

android.os.TracePerfTest:INSTRUMENTATION_STATUS: enabled_mean=16
INSTRUMENTATION_STATUS: enabled_median=16
INSTRUMENTATION_STATUS: enabled_min=16
INSTRUMENTATION_STATUS: enabled_standardDeviation=0
INSTRUMENTATION_STATUS_CODE: -1
.INSTRUMENTATION_STATUS: beginEndSection_mean=3869
INSTRUMENTATION_STATUS: beginEndSection_median=3864
INSTRUMENTATION_STATUS: beginEndSection_min=3840
INSTRUMENTATION_STATUS: beginEndSection_standardDeviation=21
INSTRUMENTATION_STATUS_CODE: -1
.INSTRUMENTATION_STATUS: counter_mean=2511
INSTRUMENTATION_STATUS: counter_median=2503
INSTRUMENTATION_STATUS: counter_min=2480
INSTRUMENTATION_STATUS: counter_standardDeviation=35
INSTRUMENTATION_STATUS_CODE: -1
.INSTRUMENTATION_STATUS: asyncBeginEnd_mean=5348
INSTRUMENTATION_STATUS: asyncBeginEnd_median=5344
INSTRUMENTATION_STATUS: asyncBeginEnd_min=5318
INSTRUMENTATION_STATUS: asyncBeginEnd_standardDeviation=28
INSTRUMENTATION_STATUS_CODE: -1

But it also works correctly and doesn't crash, and that seems worth it.

Fixes: 133104515
Test: systrace still works, AtraceHostTest passes, verified
    Trace.beginSection of 4-byte utf8 octets showed up in systrace
Change-Id: Ie2e31227d9380df4190f9bc09ecd67f8a982827f
1 file changed