The code already copes with the possibility of having
read some of the 4byte length but not all, but can never
get into that situation. We just need to add a 'return'
for the case where read got some data but not enough.
Either 0 or -EAGAIN could be returned, they both have the
same effect.
goto error;
svsk->sk_tcplen += len;
+ if (len < want)
+ return 0;
+
svsk->sk_reclen = ntohl(svsk->sk_reclen);
if (!(svsk->sk_reclen & 0x80000000)) {
/* FIXME: technically, a record can be fragmented,