summaryrefslogtreecommitdiff
path: root/transaction.go
diff options
context:
space:
mode:
Diffstat (limited to 'transaction.go')
-rw-r--r--transaction.go9
1 files changed, 4 insertions, 5 deletions
diff --git a/transaction.go b/transaction.go
index 7b19f5c..5957071 100644
--- a/transaction.go
+++ b/transaction.go
@@ -22,7 +22,6 @@ package pam
import "C"
import (
- "errors"
"fmt"
"runtime"
"runtime/cgo"
@@ -146,8 +145,8 @@ func transactionFinalizer(t *Transaction) {
// Allows to call pam functions managing return status
func (t *Transaction) handlePamStatus(cStatus C.int) error {
t.lastStatus.Store(int32(cStatus))
- if cStatus != success {
- return t
+ if status := Error(cStatus); status != success {
+ return status
}
return nil
}
@@ -213,7 +212,7 @@ func start(service, user string, handler ConversationHandler, confDir string) (*
err = t.handlePamStatus(C.pam_start_confdir(s, u, t.conv, c, &t.handle))
}
if err != nil {
- return nil, errors.Join(Error(t.lastStatus.Load()), err)
+ return nil, err
}
return t, nil
}
@@ -365,7 +364,7 @@ func (t *Transaction) GetEnvList() (map[string]string, error) {
p := C.pam_getenvlist(t.handle)
if p == nil {
t.lastStatus.Store(int32(ErrBuf))
- return nil, t
+ return nil, ErrBuf
}
t.lastStatus.Store(success)
for q := p; *q != nil; q = next(q) {