Bryce Denney f49ec8c71c Fix serveral ltdl bugs related to searching for libraries, and what
to do if they cannot be found.

- in try_dlopen, after find_handle() is called and returns 0 over
  and over, it was ignoring the return value of tryall_dlopen.  As
  a result, sometimes the dlopen would fail and return 1 or more
  errors but nobody would notice.  The handle would be returned as
  if the open had succeed, then any use of the handle would segfault
  because handle->loader was NULL.  I have solved this problem by
  capturing the return value in errors, and then checking if errors>0
  in the next if statement.
- fix faulty boolean logic in lt_dlopenext that caused it to only
  search for libraries ending with .la.  Now it says: if try_dlopen
  created a nonzero handle, return it.  Otherwise, if there were
  any errors OTHER THAN file-not-found, return the NULL handle.  If
  the only errors were file-not-found, continue to search.
- just before loading the module in tryall_dlopen, do one final
  call to access() to check for existence of the file.  Without
  this check, you sometimes get the "can't load module" error
  when in fact the problem is "file not found".
2002-10-16 02:08:02 +00:00
2002-03-21 07:15:06 +00:00
2002-10-14 12:37:49 +00:00
Description
No description provided
48 MiB
Languages
C++ 69.5%
C 21.2%
Shell 3%
Makefile 2.1%
Rez 1.9%
Other 2.1%