diff -uNr ircservices-5.0.15/Changes ircservices-5.0.16/Changes --- ircservices-5.0.15/Changes 2003-04-08 00:12:54.000000000 +0900 +++ ircservices-5.0.16/Changes 2003-04-10 10:45:01.000000000 +0900 @@ -1,5 +1,8 @@ Version 5.0 ----------- +2003/04/10 .16 Fixed crash on some systems when giving only spaces to + certain commands. Reported by Joao Luis Marques Pinto + 2003/04/08 .15 Support for trircd 4.x removed, and for 5.1 added, on recommendation from Yusuf Iskenderoglu diff -uNr ircservices-5.0.15/compat.c ircservices-5.0.16/compat.c --- ircservices-5.0.15/compat.c 2003-04-08 00:21:35.000000000 +0900 +++ ircservices-5.0.16/compat.c 2003-04-10 11:52:27.000000000 +0900 @@ -73,7 +73,9 @@ #if !HAVE_STRTOK /* glibc 2.2 (RedHat 7.0) has a broken strtok--it dies if called with a - * NULL parameter after returning NULL once. + * NULL parameter after returning NULL once. glibc and possibly other + * libraries also return non-NULL for strtok(NULL, "") even after + * returning NULL for strtok(NULL, " "). */ char *strtok(char *str, const char *delim) diff -uNr ircservices-5.0.15/configure ircservices-5.0.16/configure --- ircservices-5.0.15/configure 2003-01-22 23:36:41.000000000 +0900 +++ ircservices-5.0.16/configure 2003-04-10 10:35:14.000000000 +0900 @@ -1735,6 +1735,9 @@ fi fi + # Common failings with strtok() implementations: + # - strtok(NULL, ...) crashes after a NULL is returned + # - strtok(NULL, " ") returns NULL but strtok(NULL, "") doesn't MODE="check_strtok " TEST=' char buf1[1]; char buf2[] = "1 2 3"; @@ -1753,6 +1756,10 @@ return 5; if (strtok((char *)0, " ") != (char *)0) return 6; + if (strtok(buf4, " ") != (char *)0) + return 7; + if (strtok((char *)0, "") != (char *)0) + return 8; return 0;' if test_function "char *" strtok "(char *, const char *)" ; then : ; else MISSING="$MISSING strtok" diff -uNr ircservices-5.0.15/version.sh ircservices-5.0.16/version.sh --- ircservices-5.0.15/version.sh 2003-04-08 00:12:30.000000000 +0900 +++ ircservices-5.0.16/version.sh 2003-04-10 11:13:07.000000000 +0900 @@ -3,7 +3,7 @@ # Build the version.c file which contains all the version related info and # needs to be updated on a per-build basis. -VERSION=5.0.15 +VERSION=5.0.16 # Increment Services build number if [ -f version.c ] ; then