[Mesa-dev] [PATCH] st/mesa: don't clobber glGetInternalformat* buffer for GL_NUM_SAMPLE_COUNTS
Nicolai Hähnle
nhaehnle at gmail.com
Fri Oct 6 20:13:10 UTC 2017
From: Nicolai Hähnle <nicolai.haehnle at amd.com>
Applications might pass in a buffer that is sized too large and rely
on the extra space of the buffer not being overwritten.
Fixes dEQP-GLES31.functional.state_query.internal_format.partial_query.num_sample_counts
Cc: mesa-stable at lists.freedesktop.org
---
src/mesa/state_tracker/st_format.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/mesa/state_tracker/st_format.c b/src/mesa/state_tracker/st_format.c
index 5e38fe56890..65be09cbde2 100644
--- a/src/mesa/state_tracker/st_format.c
+++ b/src/mesa/state_tracker/st_format.c
@@ -2371,23 +2371,24 @@ st_QueryInternalFormat(struct gl_context *ctx, GLenum target,
* and guaranteed to have at least 16 elements.
*/
assert(params != NULL);
switch (pname) {
case GL_SAMPLES:
st_QuerySamplesForFormat(ctx, target, internalFormat, params);
break;
case GL_NUM_SAMPLE_COUNTS: {
+ int samples[16];
size_t num_samples;
num_samples = st_QuerySamplesForFormat(ctx, target, internalFormat,
- params);
+ samples);
params[0] = (GLint) num_samples;
break;
}
case GL_INTERNALFORMAT_PREFERRED: {
params[0] = GL_NONE;
/* We need to resolve an internal format that is compatible with
* the passed internal format, and optimal to the driver. By now,
* we just validate that the passed internal format is supported by
* the driver, and if so return the same internal format, otherwise
--
2.11.0
More information about the mesa-dev
mailing list