And well, here's the problem:
#5 0x0000000000418df5 in ensure_space (vector=0x7b42a0, min_items=33)
at src/shared/vector.c:192
192 if (!(new_buffer = realloc(vector->buffer, new_max * vector->pitch)) && new_max > 0)
(gdb) l
187 if (min_items > vector->max_items) // is the buffer too small?
188 new_max = min_items * 2;
189 else if (min_items < vector->max_items / 4) // if item count drops below 1/4 of peak size, shrink the buffer
190 new_max = min_items;
191 if (new_max != vector->max_items) {
192 if (!(new_buffer = realloc(vector->buffer, new_max * vector->pitch)) && new_max > 0)
193 return false;
194 vector->buffer = new_buffer;
195 vector->max_items = new_max;
196 }
(gdb) p new_max
$1 = 66
(gdb) p vector->pitch
$2 = 140701562626560
realloc() gets asked to allocate 9 quadrillion bytes and, well, that obviously fails miserably.