summaryrefslogtreecommitdiff
path: root/transaction.go
diff options
context:
space:
mode:
authorMichael Steinert <[email protected]>2015-03-30 18:13:10 -0500
committerMichael Steinert <[email protected]>2015-03-30 18:13:10 -0500
commit77471e65f1618fc98af09b0188d9ad138b089366 (patch)
tree05f853c16288aeac920bc27ba3daad3b6b149c7c /transaction.go
parenta0cde3fe01c403f3651e9ee3fec9d62e2a7d806b (diff)
Fix a silly bug and add test coverage
Diffstat (limited to 'transaction.go')
-rw-r--r--transaction.go9
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