diff options
author | Michael Steinert <[email protected]> | 2015-03-30 18:13:10 -0500 |
---|---|---|
committer | Michael Steinert <[email protected]> | 2015-03-30 18:13:10 -0500 |
commit | 77471e65f1618fc98af09b0188d9ad138b089366 (patch) | |
tree | 05f853c16288aeac920bc27ba3daad3b6b149c7c /transaction.go | |
parent | a0cde3fe01c403f3651e9ee3fec9d62e2a7d806b (diff) |
Fix a silly bug and add test coverage
Diffstat (limited to 'transaction.go')
-rw-r--r-- | transaction.go | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/transaction.go b/transaction.go index 2ca945b..e99be6a 100644 --- a/transaction.go +++ b/transaction.go @@ -250,13 +250,14 @@ func (t *Transaction) GetEnvList() (map[string]string, error) { t.status = C.PAM_BUF_ERR return nil, t } - for *p != nil { - chunks := strings.SplitN(C.GoString(*p), "=", 2) + q := p + for *q != nil { + chunks := strings.SplitN(C.GoString(*q), "=", 2) if len(chunks) == 2 { env[chunks[0]] = chunks[1] } - C.free(unsafe.Pointer(*p)) - p = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(p)) + unsafe.Sizeof(p))) + C.free(unsafe.Pointer(*q)) + q = (**C.char)(unsafe.Pointer(uintptr(unsafe.Pointer(q)) + unsafe.Sizeof(*p))) } C.free(unsafe.Pointer(p)) return env, nil |