--- os/connection.c.orig Wed Nov 26 14:49:09 2003 +++ os/connection.c Mon Mar 1 20:05:58 2004 @@ -168,12 +168,16 @@ char **displayP; { static char newDisplay[16]; - sprintf (newDisplay, "%d", atoi (*displayP) + 1); - *displayP = newDisplay; + long displayNum; - if (atoi (*displayP) > 65535) + errno = 0; + displayNum = strtol (*displayP, NULL, 10); + if ((displayNum >= 65535) || (displayNum < 0) || (errno != 0)) return (FALSE); + sprintf (newDisplay, "%d", displayNum + 1); + *displayP = newDisplay; + return (TRUE); }