From: Carl Worth Date: Mon, 4 Jun 2012 21:47:33 +0000 (-0700) Subject: Avoid walking off array if given a negative value for array size. X-Git-Url: https://git.notmuchmail.org/git?a=commitdiff_plain;h=614174444ce27a22f25e08a50cca3af5d3d07bae;p=apitrace Avoid walking off array if given a negative value for array size. Obviously, a negative size is bogus, but we want apitrace to be robust enough to capture even bogus usage of the API, (so that the user can investigate and fix the bogosity in the application). In this case, if the user specifies a negative size for an array, simply don't write anything out for the array content. Signed-off-by: José Fonseca --- diff --git a/wrappers/trace.py b/wrappers/trace.py index c838dc7..5f6f52b 100644 --- a/wrappers/trace.py +++ b/wrappers/trace.py @@ -187,7 +187,7 @@ class ValueSerializer(stdapi.Visitor): length = '_c' + array.type.tag index = '_i' + array.type.tag print ' if (%s) {' % instance - print ' size_t %s = %s;' % (length, array.length) + print ' size_t %s = %s > 0 ? %s : 0;' % (length, array.length, array.length) print ' trace::localWriter.beginArray(%s);' % length print ' for (size_t %s = 0; %s < %s; ++%s) {' % (index, index, length, index) print ' trace::localWriter.beginElement();'