aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/godbus/dbus/v5/default_handler.go
diff options
context:
space:
mode:
authordependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2021-04-02 07:58:47 +0000
committerGitHub <noreply@github.com>2021-04-02 07:58:47 +0000
commit5a7a1a1673c3735033a7d27d26b96c8d3eb9a14c (patch)
treef7427403d0fa4938fc519a4f0a68251e49c0ee82 /vendor/github.com/godbus/dbus/v5/default_handler.go
parent23ee8b1df1f70aaad4fc4bc9c0c6b17f7aae5c8a (diff)
downloadpodman-5a7a1a1673c3735033a7d27d26b96c8d3eb9a14c.tar.gz
podman-5a7a1a1673c3735033a7d27d26b96c8d3eb9a14c.tar.bz2
podman-5a7a1a1673c3735033a7d27d26b96c8d3eb9a14c.zip
Bump github.com/coreos/go-systemd/v22 from 22.3.0 to 22.3.1
Bumps [github.com/coreos/go-systemd/v22](https://github.com/coreos/go-systemd) from 22.3.0 to 22.3.1. - [Release notes](https://github.com/coreos/go-systemd/releases) - [Commits](https://github.com/coreos/go-systemd/compare/v22.3.0...v22.3.1) Signed-off-by: dependabot[bot] <support@github.com>
Diffstat (limited to 'vendor/github.com/godbus/dbus/v5/default_handler.go')
-rw-r--r--vendor/github.com/godbus/dbus/v5/default_handler.go22
1 files changed, 18 insertions, 4 deletions
diff --git a/vendor/github.com/godbus/dbus/v5/default_handler.go b/vendor/github.com/godbus/dbus/v5/default_handler.go
index 6d8bf32f9..13132c6b4 100644
--- a/vendor/github.com/godbus/dbus/v5/default_handler.go
+++ b/vendor/github.com/godbus/dbus/v5/default_handler.go
@@ -126,14 +126,28 @@ func (m exportedMethod) Call(args ...interface{}) ([]interface{}, error) {
}
ret := m.Value.Call(params)
-
- err := ret[t.NumOut()-1].Interface().(*Error)
- ret = ret[:t.NumOut()-1]
+ var err error
+ nilErr := false // The reflection will find almost-nils, let's only pass back clean ones!
+ if t.NumOut() > 0 {
+ if e, ok := ret[t.NumOut()-1].Interface().(*Error); ok { // godbus *Error
+ nilErr = ret[t.NumOut()-1].IsNil()
+ ret = ret[:t.NumOut()-1]
+ err = e
+ } else if ret[t.NumOut()-1].Type().Implements(errType) { // Go error
+ i := ret[t.NumOut()-1].Interface()
+ if i == nil {
+ nilErr = ret[t.NumOut()-1].IsNil()
+ } else {
+ err = i.(error)
+ }
+ ret = ret[:t.NumOut()-1]
+ }
+ }
out := make([]interface{}, len(ret))
for i, val := range ret {
out[i] = val.Interface()
}
- if err == nil {
+ if nilErr || err == nil {
//concrete type to interface nil is a special case
return out, nil
}