gensec: Fix CID 1458419 Control flow issues (NO_EFFECT)
authorVolker Lendecke <vl@samba.org>
Wed, 12 Feb 2020 14:42:28 +0000 (15:42 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 14 Feb 2020 13:42:26 +0000 (13:42 +0000)
socklen_t can be unsigned

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Fri Feb 14 13:42:26 UTC 2020 on sn-devel-184

source4/auth/gensec/gensec_krb5.c

index dbc9bad8c0824067fe2101844b7531d05a721c7e..866ecc821337d99f221510ff3a1940250ba34ac8 100644 (file)
@@ -145,15 +145,17 @@ static NTSTATUS gensec_krb5_start(struct gensec_security *gensec_security, bool
 
        tlocal_addr = gensec_get_local_address(gensec_security);
        if (tlocal_addr) {
+               ssize_t sockaddr_ret;
                struct samba_sockaddr addr;
                bool ok;
 
-               addr.sa_socklen = tsocket_address_bsd_sockaddr(
+               sockaddr_ret = tsocket_address_bsd_sockaddr(
                        tlocal_addr, &addr.u.sa, sizeof(addr.u.sa));
-               if (addr.sa_socklen < 0) {
+               if (sockaddr_ret < 0) {
                        talloc_free(gensec_krb5_state);
                        return NT_STATUS_INTERNAL_ERROR;
                }
+               addr.sa_socklen = sockaddr_ret;
                ok = smb_krb5_sockaddr_to_kaddr(&addr.u.ss, &my_krb5_addr);
                if (!ok) {
                        DBG_WARNING("smb_krb5_sockaddr_to_kaddr (local) failed\n");
@@ -164,15 +166,17 @@ static NTSTATUS gensec_krb5_start(struct gensec_security *gensec_security, bool
 
        tremote_addr = gensec_get_remote_address(gensec_security);
        if (tremote_addr) {
+               ssize_t sockaddr_ret;
                struct samba_sockaddr addr;
                bool ok;
 
-               addr.sa_socklen = tsocket_address_bsd_sockaddr(
+               sockaddr_ret = tsocket_address_bsd_sockaddr(
                        tremote_addr, &addr.u.sa, sizeof(addr.u.sa));
-               if (addr.sa_socklen < 0) {
+               if (sockaddr_ret < 0) {
                        talloc_free(gensec_krb5_state);
                        return NT_STATUS_INTERNAL_ERROR;
                }
+               addr.sa_socklen = sockaddr_ret;
                ok = smb_krb5_sockaddr_to_kaddr(&addr.u.ss, &peer_krb5_addr);
                if (!ok) {
                        DBG_WARNING("smb_krb5_sockaddr_to_kaddr (remote) failed\n");