Thanks Rutger:
I made the change to: assert( traits::vector_size(ipiv) >= traits::matrix_size2(a) ) 
Now it works perfectly for ublas::vector, std::vector, and int* pivot vectors

I will hold off from using other drivers until they are generated with this change.  Is there any chance that the argument ordering of gesv will change from "matrix, pivot vector, matrix" to "matrix, matrix, pivot vector" if you use auto-detection of the optimal pivot vector as an optional argument?

When you get a chance to update the high level driver for solve, I will give it a shot.

Thanks,
Jesse