提交 acf60ef7 编写于 作者: R Richard Levitte

At least for the two common Unixly DSO loading methods, include the

system error in the error text.
上级 c85a1578
...@@ -130,7 +130,8 @@ static int dl_load(DSO *dso) ...@@ -130,7 +130,8 @@ static int dl_load(DSO *dso)
if(ptr == NULL) if(ptr == NULL)
{ {
DSOerr(DSO_F_DL_LOAD,DSO_R_LOAD_FAILED); DSOerr(DSO_F_DL_LOAD,DSO_R_LOAD_FAILED);
ERR_add_error_data(3, "filename(", filename, ")"); ERR_add_error_data(4, "filename(", filename, "): ",
strerror(errno));
goto err; goto err;
} }
if(!sk_push(dso->meth_data, (char *)ptr)) if(!sk_push(dso->meth_data, (char *)ptr))
...@@ -199,7 +200,8 @@ static void *dl_bind_var(DSO *dso, const char *symname) ...@@ -199,7 +200,8 @@ static void *dl_bind_var(DSO *dso, const char *symname)
if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0) if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0)
{ {
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_SYM_FAILURE); DSOerr(DSO_F_DL_BIND_VAR,DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")"); ERR_add_error_data(4, "symname(", symname, "): ",
strerror(errno));
return(NULL); return(NULL);
} }
return(sym); return(sym);
...@@ -229,7 +231,8 @@ static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname) ...@@ -229,7 +231,8 @@ static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0) if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0)
{ {
DSOerr(DSO_F_DL_BIND_FUNC,DSO_R_SYM_FAILURE); DSOerr(DSO_F_DL_BIND_FUNC,DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")"); ERR_add_error_data(4, "symname(", symname, "): ",
strerror(errno));
return(NULL); return(NULL);
} }
return((DSO_FUNC_TYPE)sym); return((DSO_FUNC_TYPE)sym);
......
...@@ -147,7 +147,7 @@ static int dlfcn_load(DSO *dso) ...@@ -147,7 +147,7 @@ static int dlfcn_load(DSO *dso)
if(ptr == NULL) if(ptr == NULL)
{ {
DSOerr(DSO_F_DLFCN_LOAD,DSO_R_LOAD_FAILED); DSOerr(DSO_F_DLFCN_LOAD,DSO_R_LOAD_FAILED);
ERR_add_error_data(3, "filename(", filename, ")"); ERR_add_error_data(4, "filename(", filename, "): ", dlerror());
goto err; goto err;
} }
if(!sk_push(dso->meth_data, (char *)ptr)) if(!sk_push(dso->meth_data, (char *)ptr))
...@@ -215,7 +215,7 @@ static void *dlfcn_bind_var(DSO *dso, const char *symname) ...@@ -215,7 +215,7 @@ static void *dlfcn_bind_var(DSO *dso, const char *symname)
if(sym == NULL) if(sym == NULL)
{ {
DSOerr(DSO_F_DLFCN_BIND_VAR,DSO_R_SYM_FAILURE); DSOerr(DSO_F_DLFCN_BIND_VAR,DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")"); ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
return(NULL); return(NULL);
} }
return(sym); return(sym);
...@@ -246,7 +246,7 @@ static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname) ...@@ -246,7 +246,7 @@ static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
if(sym == NULL) if(sym == NULL)
{ {
DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_SYM_FAILURE); DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")"); ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
return(NULL); return(NULL);
} }
return(sym); return(sym);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册