diff --git a/lib/util/lbuf.c b/lib/util/lbuf.c index f8851ee86..dd5b54cdf 100644 --- a/lib/util/lbuf.c +++ b/lib/util/lbuf.c @@ -23,10 +23,11 @@ #include -#include -#include #include #include +#include +#include +#include #include "sudo_compat.h" #include "sudo_debug.h" @@ -82,7 +83,7 @@ sudo_lbuf_expand(struct sudo_lbuf *lbuf, unsigned int extra) size_t new_size = sudo_pow2_roundup(lbuf->len + extra + 1); char *new_buf; - if (new_size < lbuf->size) { + if (new_size > UINT_MAX || new_size < lbuf->size) { errno = ENOMEM; sudo_debug_printf(SUDO_DEBUG_ERROR|SUDO_DEBUG_LINENO, "integer overflow updating lbuf->size");