summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-09-14 19:43:39 +0200
committerMiloslav Trmač <mitr@redhat.com>2010-09-14 19:43:39 +0200
commit7ff5aca8df37839496d242097f481843c57dfc5c (patch)
tree4b9168726bb75b3ddfbd96e870de8d66cbcf8d37
parent41c18632e4587d6091266dcbb372fc72b7aaeb40 (diff)
downloadcryptodev-linux-7ff5aca8df37839496d242097f481843c57dfc5c.tar.gz
cryptodev-linux-7ff5aca8df37839496d242097f481843c57dfc5c.tar.xz
cryptodev-linux-7ff5aca8df37839496d242097f481843c57dfc5c.zip
Use more specific errno values
-rw-r--r--cryptodev_main.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/cryptodev_main.c b/cryptodev_main.c
index f7a6d86..fa70b98 100644
--- a/cryptodev_main.c
+++ b/cryptodev_main.c
@@ -461,7 +461,9 @@ static int alg_bind(struct socket *sock, struct sockaddr *myaddr,
struct alg_sock *ask;
int res;
- if (myaddr->sa_family != AF_ALG || sockaddr_len < sizeof(*addr))
+ if (myaddr->sa_family != AF_ALG)
+ return -EAFNOSUPPORT;
+ if (sockaddr_len < sizeof(*addr))
return -EINVAL;
addr = (struct sockaddr_alg *)myaddr;
if (memchr(addr->salg_type, '\0', sizeof(addr->salg_type)) == NULL)
@@ -473,7 +475,7 @@ static int alg_bind(struct socket *sock, struct sockaddr *myaddr,
// FIXME: locking
if (ask->addr.salg_type[0] != 0)
- return -EINVAL; // FIXME: better error code for "already bound"?
+ return -EINVAL;
// FIXME
if (strncmp(addr->salg_type, "hash", sizeof(addr->salg_type)) != 0)
@@ -529,6 +531,9 @@ static int alg_listen(struct socket *sock, int len)
ask = alg_sk(sock->sk);
DUMP_ASK(ask);
+ if (ask->addr.salg_type[0] == 0)
+ return -EDESTADDRREQ;
+
if (ask->num_slaves != 0)
return -EINVAL;
@@ -591,7 +596,7 @@ static int alg_sendmsg(struct kiocb *iocb, struct socket *sock,
// FIXME: locking
if (ask->addr.salg_type[0] == 0)
- return -EINVAL; // FIXME: better error code for "not bound"?
+ return -ENOTCONN;
return do_data_sendmsg(iocb, ask, 0, m, total_len);
}
@@ -607,7 +612,7 @@ static int alg_recvmsg(struct kiocb *iocb, struct socket *sock,
// FIXME: locking
if (ask->addr.salg_type[0] == 0)
- return -EINVAL; // FIXME: better error code for "not bound"?
+ return -ENOTCONN;
return do_data_recvmsg(iocb, ask, 0, m, total_len, flags);
}