diff options
author | Kristian Høgsberg <krh@redhat.com> | 2008-11-06 10:36:44 -0500 |
---|---|---|
committer | Kristian Høgsberg <krh@redhat.com> | 2008-11-06 10:57:50 -0500 |
commit | 062efc5b5fcd14603f308b8effa7a7261d2ca561 (patch) | |
tree | f9486e4629cff4496dbc0932d6dabe23ebc56ad9 | |
parent | e05da6309fd1e0be68f4fc083a58ff343c25c57e (diff) |
Fix a double free, print errors if dlopen fails.
-rw-r--r-- | eagle.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -97,11 +97,14 @@ eglLoadDriver(EGLDisplay display, const char *driverName) path, driverName); display->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL); - if (display->driver == NULL) + if (display->driver == NULL) { + fprintf(stderr, "dlopen: %s\n", dlerror()); return -1; + } extensions = dlsym(display->driver, __DRI_DRIVER_EXTENSIONS); if (extensions == NULL) { + fprintf(stderr, "dlsym: %s\n", dlerror()); dlclose(display->driver); return -1; } @@ -178,7 +181,6 @@ eglInitDisplay(EGLDisplay display, const char *device, const char *driver) fail: close(display->fd); - free(display); return -1; } |