From 037d26f055e4818616ffe5c8c3597451550e59e6 Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Sat, 24 Oct 2020 18:56:45 +0800 Subject: Add buf_decrpos() --- buffer.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'buffer.c') diff --git a/buffer.c b/buffer.c index 173b8e2..fee41d6 100644 --- a/buffer.c +++ b/buffer.c @@ -125,18 +125,23 @@ void buf_incrwritepos(buffer* buf, unsigned int incr) { } } -/* increment the position by incr, negative values are allowed, to - * decrement the pos*/ -void buf_incrpos(buffer* buf, int incr) { +/* increment the position by incr */ +void buf_incrpos(buffer* buf, unsigned int incr) { if (incr > BUF_MAX_INCR - || incr < -BUF_MAX_INCR - || (unsigned int)((int)buf->pos + incr) > buf->len - || ((int)buf->pos + incr) < 0) { + || (buf->pos + incr) > buf->len) { dropbear_exit("Bad buf_incrpos"); } buf->pos += incr; } +/* decrement the position by decr */ +void buf_decrpos(buffer* buf, unsigned int decr) { + if (decr > buf->pos) { + dropbear_exit("Bad buf_decrpos"); + } + buf->pos -= decr; +} + /* Get a byte from the buffer and increment the pos */ unsigned char buf_getbyte(buffer* buf) { -- cgit v1.2.3