Showing error 1893

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: net/irda/af_irda.c
Line in file: 1049
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

1019        /* Move to connecting socket, start sending Connect Requests */
1020        sock->state = SS_CONNECTING;
1021        sk->sk_state   = TCP_SYN_SENT;
1022
1023        /* Connect to remote device */
1024        err = irttp_connect_request(self->tsap, self->dtsap_sel,
1025                                    self->saddr, self->daddr, NULL,
1026                                    self->max_sdu_size_rx, NULL);
1027        if (err) {
1028                IRDA_DEBUG(0, "%s(), connect failed!\n", __func__);
1029                return err;
1030        }
1031
1032        /* Now the loop */
1033        if (sk->sk_state != TCP_ESTABLISHED && (flags & O_NONBLOCK))
1034                return -EINPROGRESS;
1035
1036        if (wait_event_interruptible(*(sk->sk_sleep),
1037                                     (sk->sk_state != TCP_SYN_SENT)))
1038                return -ERESTARTSYS;
1039
1040        if (sk->sk_state != TCP_ESTABLISHED) {
1041                sock->state = SS_UNCONNECTED;
1042                err = sock_error(sk);
1043                return err? err : -ECONNRESET;
1044        }
1045
1046        sock->state = SS_CONNECTED;
1047
1048        /* At this point, IrLMP has assigned our source address */
1049        self->saddr = irttp_get_saddr(self->tsap);
1050
1051        return 0;
1052}
1053
1054static struct proto irda_proto = {
1055        .name          = "IRDA",
1056        .owner          = THIS_MODULE,
1057        .obj_size = sizeof(struct irda_sock),
1058};
1059
Show full sources