diff options
author | Chia-I Wu <olv@lunarg.com> | 2010-07-15 00:31:39 +0800 |
---|---|---|
committer | Chia-I Wu <olv@lunarg.com> | 2010-07-15 10:05:46 +0800 |
commit | d7284b45e247d620e3a80bfc9182ff9c45bb7c62 (patch) | |
tree | 39b30bd399bc6f0d0294cce6e7aa50ca957f3ea6 /src/egl | |
parent | 2f4ce2564577755aaf58d05dec3a66d9982e56e1 (diff) |
egl: Return the correct array size in _eglFlattenArray.
The function is used by _eglGetConfigs and _eglGetScreens. The array
size should not be limited by the buffer size when the buffer is NULL.
This fixes fdo bug #29052.
Diffstat (limited to 'src/egl')
-rw-r--r-- | src/egl/main/eglarray.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/egl/main/eglarray.c b/src/egl/main/eglarray.c index 781d07fc1c..d686fa162d 100644 --- a/src/egl/main/eglarray.c +++ b/src/egl/main/eglarray.c @@ -166,8 +166,11 @@ _eglFlattenArray(_EGLArray *array, void *buffer, EGLint elem_size, EGLint size, if (!array) return 0; - count = (size < array->Size) ? size : array->Size; + count = array->Size; if (buffer) { + /* do not exceed buffer size */ + if (count > size) + count = size; for (i = 0; i < count; i++) flatten(array->Elements[i], (void *) ((char *) buffer + elem_size * i)); |