зеркало из https://github.com/github/ruby.git
Check the return value of dlopen().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
7af9f79560
Коммит
0af783bef4
|
@ -65,7 +65,7 @@ rb_dlhandle_initialize(int argc, VALUE argv[], VALUE self)
|
||||||
|
|
||||||
ptr = dlopen(clib, cflag);
|
ptr = dlopen(clib, cflag);
|
||||||
#if defined(HAVE_DLERROR)
|
#if defined(HAVE_DLERROR)
|
||||||
if( (err = dlerror()) ){
|
if( !ptr && (err = dlerror()) ){
|
||||||
rb_raise(rb_eRuntimeError, err);
|
rb_raise(rb_eRuntimeError, err);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -168,7 +168,7 @@ rb_dlhandle_sym(int argc, VALUE argv[], VALUE self)
|
||||||
|
|
||||||
func = dlsym(handle, name);
|
func = dlsym(handle, name);
|
||||||
#if defined(HAVE_DLERROR)
|
#if defined(HAVE_DLERROR)
|
||||||
if( (err = dlerror()) && (!func) )
|
if( !func && (err = dlerror()) )
|
||||||
#else
|
#else
|
||||||
if( !func )
|
if( !func )
|
||||||
#endif
|
#endif
|
||||||
|
@ -183,7 +183,7 @@ rb_dlhandle_sym(int argc, VALUE argv[], VALUE self)
|
||||||
func = dlsym(handle, name_a);
|
func = dlsym(handle, name_a);
|
||||||
dlfree(name_a);
|
dlfree(name_a);
|
||||||
#if defined(HAVE_DLERROR)
|
#if defined(HAVE_DLERROR)
|
||||||
if( (err = dlerror()) && (!func) )
|
if( !func && (err = dlerror()) )
|
||||||
#else
|
#else
|
||||||
if( !func )
|
if( !func )
|
||||||
#endif
|
#endif
|
||||||
|
|
Загрузка…
Ссылка в новой задаче