OSDN Git Service

r300g: Use PATH_MAX instead of limiting ourselves to 100 chars.
authorMatt Turner <mattst88@gmail.com>
Wed, 4 Mar 2015 00:02:40 +0000 (16:02 -0800)
committerMatt Turner <mattst88@gmail.com>
Wed, 4 Mar 2015 19:15:09 +0000 (11:15 -0800)
When built with Gentoo's package manager, the Mesa source directory
exists seven directories deep. The path to the .test file is too long
and is silently truncated, leading to a crash. Just use PATH_MAX.

Cc: 10.4, 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=540970
Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
src/gallium/drivers/r300/compiler/tests/rc_test_helpers.c

index 7c9d177..422bdb0 100644 (file)
@@ -28,6 +28,7 @@
  */
 
 #include <errno.h>
+#include <limits.h>
 #include <regex.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -528,7 +529,6 @@ void init_compiler(
 }
 
 #define MAX_LINE_LENGTH 100
-#define MAX_PATH_LENGTH 100
 
 unsigned load_program(
        struct radeon_compiler *c,
@@ -536,14 +536,14 @@ unsigned load_program(
        const char *filename)
 {
        char line[MAX_LINE_LENGTH];
-       char path[MAX_PATH_LENGTH];
+       char path[PATH_MAX];
        FILE *file;
        unsigned *count;
        char **string_store;
        unsigned i = 0;
 
        memset(line, 0, sizeof(line));
-       snprintf(path, MAX_PATH_LENGTH, TEST_PATH "/%s", filename);
+       snprintf(path, PATH_MAX, TEST_PATH "/%s", filename);
        file = fopen(path, "r");
        if (!file) {
                return 0;