Re: null
@Allan George Dyer,
The problem is not C, and has little to do with string terminators. It has everything to do with an application not validating its inputs properly. It seems to me that the reason he added the null terminator after the asterisk is probably because the input validator would not accept a single asterisk as input (good), but would happily hand off a truncated string that "seems" to be the correct length (bad).
The root cause here is a discrepancy between how the end application interprets valid input, and how the validator accepts it. This is called "command injection", and it's easy to avoid by, hum, validating input properly.
Of course, the browser expects that certificates from an issuing authority are already valid, such is the nature of the system (being an "authority" and all). Therefore, putting the browsers at fault is also disingenious. Sure, clients can double-check just in case (as apparently Firefox does), and so they should; but at the end of the day, if you can't trust a Certificate Authority, how much of an "authority" is it?
-dZ.