https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267032

Daniel Tameling <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #1 from Daniel Tameling <[email protected]> ---
I had a look at this and there are two kinds of overflows that happen.

The first is for the line number. Here the code does something like

upd = MIN(len[1], context_vec_ptr->d + diff_context);

where the addition can overflow. The fix is to just use len[1] if that would
happen.

The second overflow happens when checking whether the current chuck overlaps
with the next one. This is why the command you posted has so much output; it
should just be one large chunk. The code of the check is

} else if (a > context_vec_ptr->b + (2 * diff_context) + 1 &&
           c > context_vec_ptr->d + (2 * diff_context) + 1) {

To fix this one should check if an overflow would happen and if that is the
case to not execute the body of the else if.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to