Yang Tse wrote: > Mason wrote: > >> Neither atoi nor strtol are mentioned in the list, therefore atoi >> and strtol must be thread-safe on POSIX-compliant implementations >> (otherwise it's an implementation bug, which may happen). >> >> Are you saying atoi is not thread-safe because it might call >> isspace, which might be affected by setlocale? > > From a practical point of view, whether atoi() is thread-safe and > async-cancel-safe should be considered as being implementation > dependent. On the safe side, not thread safe. POSIX may dictate > whatever they choose, but software has bugs and not all > compilers/libraries pass same QA tests. > > atoi() is one of the functions that should have been dropped in POSIX > SBS issue 7. There's no way to tell apart a 'proper' zero result from > a 'bad' zero result. http://www.codepolice.org/c/atoi.html > > Regarding lwIP getaddrinfo() thread-safeness, let's stop this here. > Ask the lwIP Team to document whether lwip_getaddrinfo() is > thread-safe or not and we'll adapt if it is documented to be > thread-safe and its implementation removes atoi() usage.
Last week, I fixed a bug[1] in lwip_gethostbyname_r that made libcurl crash. I figured I might work on lwip_getaddrinfo in my spare time. [1] https://savannah.nongnu.org/bugs/?35907 Is strtol an acceptable replacement for atoi? (Probably not; if atoi is not thread-safe, odds are good that strtol is not either, since many libraries implement atoi as a wrapper to strtol.) Looking at the libcurl source code, it seems strtol is used in several places, if it is available. (There's also one call to atoi in telnet.c) -- Regards. ------------------------------------------------------------------- List admin: http://cool.haxx.se/list/listinfo/curl-library Etiquette: http://curl.haxx.se/mail/etiquette.html
