You got a segfault if the input was smaller than the block size and the
destination pointer was null. We need a temporary place for shuffling
the buffer around anyway, so it seems like the best approach is just to
make a (necessarily small) dummy destination.