mesa: Make glDebugMessageInsert deal with negative length for all types.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 24 Mar 2016 06:35:40 +0000 (23:35 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 24 Mar 2016 17:47:45 +0000 (10:47 -0700)
commit028459a00d6faec85ea75ebbaff75fb6f1d91bff
tree328e58429ded398d064d1b52ca0b36eb494716cf
parent412e686da9e64d5b56b0a9c57c2b95624c56ea05
mesa: Make glDebugMessageInsert deal with negative length for all types.

From the KHR_debug spec, section 5.5.5 (Externally Generated Messages):

   "If <length> is negative, it is implied that <buf> contains a null
    terminated string. The error INVALID_VALUE will be generated if the
    number of characters in <buf>, excluding the null terminator when
    <length> is negative, is not less than the value of
    MAX_DEBUG_MESSAGE_LENGTH."

This indicates that length should be set to strlen for all types, not
just GL_DEBUG_TYPE_MARKER.  We want it to be after validate_length()
so we still generate appropriate errors.

Fixes crashes from uncaught std::string exceptions in many
dEQP-GLES31.functional.debug.error_filters.* tests.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
src/mesa/main/debug_output.c