The program crashes when the argument to split is not a multiple of the blocksize. For example, if the blocksize 512 (the default), the following command line causes a crash.
$ dc3dd if=/dev/zero of=foo split=1000
The problem appears to be that the program is calling copy_simple and then write_output to write data to the disk. The latter function returns an error when the number of bytes written doesn't match the blocksize.