The new ARB_vertex_attrib_64bit tests specify integer vertex attributes
with hex values, such as 0xc21620c5.  As an integer value, this is
beyond LONG_MAX on 32-bit systems.  The intent is to parse it as an
unsigned hex value and bitcast it.

However, we still need to handle parsing values with negative signs.

Using strtoll and truncating should work.  It breaks the errno-based
range validation, but we can still at least try to reject some cases.

Signed-off-by: Kenneth Graunke <kenn...@whitecape.org>
---
 tests/util/piglit-vbo.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/util/piglit-vbo.cpp b/tests/util/piglit-vbo.cpp
index 1bdd9da..fd7e72a 100644
--- a/tests/util/piglit-vbo.cpp
+++ b/tests/util/piglit-vbo.cpp
@@ -387,7 +387,7 @@ vertex_attrib_description::parse_datum(const char **text, 
void *data) const
                break;
        }
        case GL_INT: {
-               long value = strtol(*text, &endptr, 0);
+               long value = (long) strtoll(*text, &endptr, 0);
                if (errno == ERANGE) {
                        printf("Could not parse as signed integer\n");
                        return false;
-- 
2.8.3

_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to