# HG changeset patch # User Timo Sirainen # Date 1030575177 -10800 # Node ID a73e43fa20e0223e4aae0767a19e4d6705957bff # Parent dc0891523276c9219d087cb4814a0b03a7d48089 warn if io_buffer_create_mmap() contains invalid size parameter diff -r dc0891523276 -r a73e43fa20e0 src/lib/iobuffer.c --- a/src/lib/iobuffer.c Thu Aug 29 01:42:00 2002 +0300 +++ b/src/lib/iobuffer.c Thu Aug 29 01:52:57 2002 +0300 @@ -93,10 +93,18 @@ buf->start_offset = buf->size = 0; } + if (start_offset > stop_offset) + start_offset = stop_offset; + + if (size > (uoff_t) (stop_offset-start_offset)) { + i_warning("Trying to create IOBuffer with size %"UOFF_T_FORMAT + " but we have only %"UOFF_T_FORMAT" bytes available " + "in file", size, stop_offset-start_offset); + size = stop_offset-start_offset; + } + buf->start_offset = start_offset; - buf->size = size > 0 ? size : - start_offset > stop_offset ? 0 : - stop_offset - start_offset; + buf->size = size > 0 ? size : stop_offset - start_offset; buf->skip = buf->pos = buf->start_offset; return buf;