[vlc-devel] [PATCH] vlc_strftime: avoid infinite loop on windows when format string is invalid

Pierre Lamot pierre at videolabs.io
Thu Jan 25 16:09:34 CET 2018


> Since strftime() returning 0 does not necessarily indicate an error,
> errno should be set to 0 before the call (otherwise, it may contain
> garbage value).

yes. 

Even if not documented, windows set errno to ERANGE in the case that interest 
us. I think we should rather check for this value, this will cover other error 
cases (source: wine implementation)

> But I think this corner case is not handled correctly anyway in this
> 
> function. "man strftime" says:
> > For example, in many locales %p yields an empty string.

the man states in the BUG section that 

> it impossible to distinguish this error case from cases where the format 
string legitimately produces a zero-length output string.

so I don't see what we can do here....

glibc implementation allows to retreive the number of char to be written by 
setting the output buffer to NULL, but I'm not sure it's a good idea to rely 
on it.

--
Pierre Lamot



More information about the vlc-devel mailing list