summaryrefslogtreecommitdiff
path: root/ext/dl/handle.c
diff options
context:
space:
mode:
authorttate <ttate@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-01-12 13:11:32 +0000
committerttate <ttate@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-01-12 13:11:32 +0000
commit0af783bef40c2a9bd652f2aa70c25a878233cc2c (patch)
tree5ce676d1dd9ccdd906b49961fb24b6be22980d27 /ext/dl/handle.c
parent7af9f795609db767ee6bc9f3862a87f6a6a6f8f6 (diff)
Check the return value of dlopen().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/dl/handle.c')
-rw-r--r--ext/dl/handle.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/dl/handle.c b/ext/dl/handle.c
index b38cecb981..689ce4e3a5 100644
--- a/ext/dl/handle.c
+++ b/ext/dl/handle.c
@@ -65,7 +65,7 @@ rb_dlhandle_initialize(int argc, VALUE argv[], VALUE self)
ptr = dlopen(clib, cflag);
#if defined(HAVE_DLERROR)
- if( (err = dlerror()) ){
+ if( !ptr && (err = dlerror()) ){
rb_raise(rb_eRuntimeError, err);
}
#else
@@ -168,7 +168,7 @@ rb_dlhandle_sym(int argc, VALUE argv[], VALUE self)
func = dlsym(handle, name);
#if defined(HAVE_DLERROR)
- if( (err = dlerror()) && (!func) )
+ if( !func && (err = dlerror()) )
#else
if( !func )
#endif
@@ -183,7 +183,7 @@ rb_dlhandle_sym(int argc, VALUE argv[], VALUE self)
func = dlsym(handle, name_a);
dlfree(name_a);
#if defined(HAVE_DLERROR)
- if( (err = dlerror()) && (!func) )
+ if( !func && (err = dlerror()) )
#else
if( !func )
#endif