From 3e8fc262bfbea69c2476a3499c0b6e81d6f41c17 Mon Sep 17 00:00:00 2001 From: Bogdan Drutu Date: Sat, 4 Jun 2011 11:31:53 +0300 Subject: [PATCH] Fix invalid socket and file descriptor is not a socket test --- src/raw/swift_raw.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/raw/swift_raw.c b/src/raw/swift_raw.c index 4f26551..12f8fb5 100644 --- a/src/raw/swift_raw.c +++ b/src/raw/swift_raw.c @@ -142,20 +142,14 @@ ssize_t sw_sendto(int __fd, __const void *__buf, size_t __n, struct msghdr __msgh; struct sockaddr_sw *__sw_addr = (struct sockaddr_sw *) __addr; - printf("=== ADDR: %s ===", ntohl(__sw_addr->sin_addr.s_addr)); list = list_elem_from_socket(__fd); - if (list == NULL) { - errno = EBADF; - goto sock_err; - } - - - if (list->bind_state == STATE_NOTBOUND) { - errno = EDESTADDRREQ; + if (list != NULL && list->bind_state == STATE_NOTBOUND) { + errno = EAFNOSUPPORT; goto sock_err; } - + printf("=== ADDR: %s ===\n", ntohl(__sw_addr->sin_addr.s_addr)); + /* Specify the components of the message in an "iovec". */ __iov[0].iov_base = (void *) __buf; __iov[0].iov_len = __n; -- 2.20.1