On Sat, 25 Apr 2020 at 14:52, Marcin Stolarek <stolarek.marcin@xxxxxxxxx> wrote: > > The change in glibc commit d58ab810a6e325cc351684d174c48cabce01bcc1 > (author in CC): > > From commit description:"[...] Also avoid an unnecessary call to > strcspn after the last token by adding an early exit for an empty > string.[...]" > > Important code change: > /* Parse S into tokens separated by characters in DELIM. > @@ -45,11 +41,17 @@ > char * > __strtok_r (char *s, const char *delim, char **save_ptr) > { > - char *token; > + char *end; > > if (s == NULL) > s = *save_ptr; > > + if (*s == '\0') > + { > + *save_ptr = s; > + return NULL; > + } > + > > may result in the mentioned segmentation fault if the char *str passed > to strtok_r is a NULL (for 1st call). I'm a little puzzled here. Getting a segfault if the first argument to strtok_r() is NULL on the first call seems not so surprising to me. Why would you expect otherwise? What am I missing? Thanks, Michael