egl: Fix a potential segfault in driver suffix matching.
authorChia-I Wu <olvaffe@gmail.com>
Wed, 3 Feb 2010 04:35:57 +0000 (12:35 +0800)
committerChia-I Wu <olvaffe@gmail.com>
Wed, 3 Feb 2010 06:16:16 +0000 (14:16 +0800)
The driver suffix might be NULL on some platforms.  Perform the matching
only when there is a suffix.

src/egl/main/egldriver.c

index 8e623a071e02ceb9c62d00348c55c0eb5ff39a33..d58991aa4c4f1fb9a75fcb2ed482d5c3cf59a2ea 100644 (file)
@@ -347,9 +347,11 @@ _eglPreloadPattern(const char *dir, size_t len, void *preload_data)
       if (strncmp(dirent->d_name, prefix, prefix_len) != 0)
          continue;
       /* match the suffix */
-      p = dirent->d_name + dirent_len - suffix_len;
-      if (p < dirent->d_name || strcmp(p, suffix) != 0)
-         continue;
+      if (suffix) {
+         p = dirent->d_name + dirent_len - suffix_len;
+         if (p < dirent->d_name || strcmp(p, suffix) != 0)
+            continue;
+      }
 
       /* make a full path and load the driver */
       if (len + dirent_len + 1 <= sizeof(path)) {