summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dl/dlfcn.go12
-rw-r--r--src/nslcd/systemd/disable_nss_module.go5
2 files changed, 6 insertions, 11 deletions
diff --git a/src/dl/dlfcn.go b/src/dl/dlfcn.go
index f182cfe..eb40794 100644
--- a/src/dl/dlfcn.go
+++ b/src/dl/dlfcn.go
@@ -82,16 +82,12 @@ func Open(name string, flags Flag) (*Handle, error) {
}
// Look up a symbol, and return a pointer to it.
-//
-// This returns uintptr instead of unsafe.Pointer so that code using
-// dl cannot obtain unsafe.Pointers without importing the unsafe
-// package explicitly.
-func (h *Handle) Sym(symbol string) (uintptr, error) {
+func (h *Handle) Sym(symbol string) (unsafe.Pointer, error) {
h.l.RLock()
defer h.l.RUnlock()
if h.o == 0 {
- return 0, HandleClosedError
+ return nil, HandleClosedError
}
symbolC := C.CString(symbol)
@@ -100,9 +96,9 @@ func (h *Handle) Sym(symbol string) (uintptr, error) {
dlerror()
ptr := C.dlsym(h.c, symbolC)
if ptr == nil {
- return 0, dlerror()
+ return nil, dlerror()
}
- return uintptr(ptr), nil
+ return ptr, nil
}
// Close this handle on a shared object; decrementint the reference
diff --git a/src/nslcd/systemd/disable_nss_module.go b/src/nslcd/systemd/disable_nss_module.go
index c19ba0c..24d7f79 100644
--- a/src/nslcd/systemd/disable_nss_module.go
+++ b/src/nslcd/systemd/disable_nss_module.go
@@ -20,7 +20,6 @@ package nslcd_systemd
import (
"dl"
"sd_daemon/logger"
- "unsafe"
)
//static char *strary(char **ary, unsigned int n) { return ary[n]; }
@@ -43,7 +42,7 @@ func disable_nss_module() {
c_version_info, err := handle.Sym(nss_module_sym_version)
if err == nil {
- g_version_info := (**C.char)(unsafe.Pointer(c_version_info))
+ g_version_info := (**C.char)(c_version_info)
logger.Debug("NSS module %s version %s %s", nss_module_soname,
C.GoString(C.strary(g_version_info, 0)),
C.GoString(C.strary(g_version_info, 1)))
@@ -55,6 +54,6 @@ func disable_nss_module() {
logger.Warning("Unable to disable NSS ldap module for nslcd process: %v", err)
return
}
- g_enable_flag := (*C.int)(unsafe.Pointer(c_enable_flag))
+ g_enable_flag := (*C.int)(c_enable_flag)
*g_enable_flag = 0
}