version 1.6, 2016/01/12 23:42:54 |
version 1.7, 2016/09/12 01:22:38 |
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
*/ |
*/ |
|
|
#include <sys/param.h> /* roundup */ |
|
#include <sys/types.h> |
#include <sys/types.h> |
#include <signal.h> |
#include <signal.h> |
#include <stdlib.h> |
#include <stdlib.h> |
|
|
#include "ssherr.h" |
#include "ssherr.h" |
#define SSHBUF_INTERNAL |
#define SSHBUF_INTERNAL |
#include "sshbuf.h" |
#include "sshbuf.h" |
|
#include "misc.h" |
|
|
static inline int |
static inline int |
sshbuf_check_sanity(const struct sshbuf *buf) |
sshbuf_check_sanity(const struct sshbuf *buf) |
|
|
if (buf->size < SSHBUF_SIZE_INIT) |
if (buf->size < SSHBUF_SIZE_INIT) |
rlen = SSHBUF_SIZE_INIT; |
rlen = SSHBUF_SIZE_INIT; |
else |
else |
rlen = roundup(buf->size, SSHBUF_SIZE_INC); |
rlen = ROUNDUP(buf->size, SSHBUF_SIZE_INC); |
if (rlen > max_size) |
if (rlen > max_size) |
rlen = max_size; |
rlen = max_size; |
explicit_bzero(buf->d + buf->size, buf->alloc - buf->size); |
explicit_bzero(buf->d + buf->size, buf->alloc - buf->size); |
|
|
* allocate less if doing so would overflow max_size. |
* allocate less if doing so would overflow max_size. |
*/ |
*/ |
need = len + buf->size - buf->alloc; |
need = len + buf->size - buf->alloc; |
rlen = roundup(buf->alloc + need, SSHBUF_SIZE_INC); |
rlen = ROUNDUP(buf->alloc + need, SSHBUF_SIZE_INC); |
SSHBUF_DBG(("need %zu initial rlen %zu", need, rlen)); |
SSHBUF_DBG(("need %zu initial rlen %zu", need, rlen)); |
if (rlen > buf->max_size) |
if (rlen > buf->max_size) |
rlen = buf->alloc + need; |
rlen = buf->alloc + need; |