diff --git a/src/buffer.c b/src/buffer.c index 95d2e62..6dfca83 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -510,8 +510,8 @@ void mobi_buffer_move(MOBIBuffer *buf, const int offset, const size_t len) { } source += aoffset; } else { - if (buf->offset < aoffset) { - debug_print("%s", "End of buffer\n"); + if ( (buf->offset < aoffset) || (buf->offset + len > buf->maxlen) ) { + debug_print("%s", "Beyond start/end of buffer\n"); buf->error = MOBI_BUFFER_END; return; }