diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-10-26 16:10:50 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-10-26 16:10:50 -0400 |
commit | 5b2b2f445d3ba4688e94ecb80c56c7940024e776 (patch) | |
tree | 8fcb798c853c0462c0a4341f59c9ab12cfcb2a0b /src | |
parent | 1feeb6545993f8032be57129a08eae5c5826a215 (diff) |
dlfcn: return raw unsafe.Pointer
Diffstat (limited to 'src')
-rw-r--r-- | src/dl/dlfcn.go | 12 | ||||
-rw-r--r-- | src/nslcd/systemd/disable_nss_module.go | 5 |
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 } |