rpc_server: Fix CID 1362565 Improper use of negative value
authorVolker Lendecke <vl@samba.org>
Tue, 7 Jun 2016 08:01:32 +0000 (10:01 +0200)
committerVolker Lendecke <vl@samba.org>
Tue, 7 Jun 2016 12:34:11 +0000 (14:34 +0200)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
source4/rpc_server/dcerpc_server.c

index 8c6935111a416e65211e169e4886d467241fe026..36b3fd27c606c4b4080b107c98b7ff73e18d29a1 100644 (file)
@@ -2077,8 +2077,16 @@ static void dcesrv_sock_accept(struct stream_connection *srv_conn)
        if (transport == NCALRPC) {
                uid_t uid;
                gid_t gid;
+               int sock_fd;
 
-               ret = getpeereid(socket_get_fd(srv_conn->socket), &uid, &gid);
+               sock_fd = socket_get_fd(srv_conn->socket);
+               if (sock_fd == -1) {
+                       stream_terminate_connection(
+                               srv_conn, "socket_get_fd failed\n");
+                       return;
+               }
+
+               ret = getpeereid(sock_fd, &uid, &gid);
                if (ret == -1) {
                        status = map_nt_error_from_unix_common(errno);
                        DEBUG(0, ("dcesrv_sock_accept: "