version 1.3, 2009/07/12 18:04:03 |
version 1.4, 2014/07/07 17:02:22 |
|
|
static int |
static int |
_read_int(struct iovec *iov, int *ival) |
_read_int(struct iovec *iov, int *ival) |
{ |
{ |
iov->iov_len -= 4; |
if (iov->iov_len < 4) |
if (iov->iov_len < 0) |
|
return (-1); |
return (-1); |
|
iov->iov_len -= 4; |
*ival = GET_32BIT((u_char *)iov->iov_base); |
*ival = GET_32BIT((u_char *)iov->iov_base); |
iov->iov_base = (u_char*)iov->iov_base + 4; |
iov->iov_base = (u_char*)iov->iov_base + 4; |
|
|
|
|
if (_read_int(iov, len) < 0 || *len < 0) |
if (_read_int(iov, len) < 0 || *len < 0) |
return (-1); |
return (-1); |
|
|
iov->iov_len -= *len; |
if (iov->iov_len < (size_t)*len) |
if (iov->iov_len < 0) |
|
return (-1); |
return (-1); |
|
iov->iov_len -= *len; |
|
|
*buf = iov->iov_base; |
*buf = iov->iov_base; |
iov->iov_base = (u_char*)iov->iov_base + *len; |
iov->iov_base = (u_char*)iov->iov_base + *len; |