If I run clEnqueueMapBuffer twice and forget to unmap the buffer in between I get a null-pointer from the second call to clEnqueueMapBuffer, but it sets the error code to CL_SUCCESS.
It would have helped me to debug this had I gotten a proper error code. I don't think clEnqueueMapBuffer is ever supposed to return a combination of null-pointer and code CL_SUCCESS. That's how I interpret the Khronos docs anyway.
Tested on catalyst 11.7 preview, and 11.6b.