A use case for fromStringz

Jesse Phillips jessekphillips+D at gmail.com
Thu Mar 31 16:23:55 PDT 2011


Andrej Mitrovic Wrote:

> Actually, this still suffers from the problem when the returned char*
> doesn't have a null terminator. It really sucks when C code does that,
> and I've just experienced that. There is a solution though:
> 
> Since we can detect the length of the D array passed into
> `fromStringz`, we can do the job of to!string ourselves and check for
> a null terminator. If one isn't found, we return a string of length 0.
> Here's an updated version which doesn't suffer from the missing null
> terminator problem:

I do not know the proper action if the string you receive is garbage. Shouldn't it throw an exception since it did not receive a string?

This to me seems like a validation issue. If the functions you are calling are expected to return improper data _you_ must validate what your receive, that includes running it through utf validation.


More information about the Digitalmars-d-learn mailing list