Only test for successful buffer allocation if a buffer needs to be allocated

No buffer is allocated when using fractions of original reads (instead of a targeted number of reads), so the alloc always fails when using fractions.   

Not sure if you'll want check before free at the bottom... I don't think it is needed, just for clarity/future.