Newsgroups: comp.lang.c Path: utzoo!utgpu!utstat!geoff From: geoff@utstat.uucp (Geoff Collyer) Subject: retiring gets(3) Message-ID: <1988Nov8.054845.23998@utstat.uucp> Organization: Statistics, U. of Toronto Date: Tue, 8 Nov 88 05:48:45 GMT The recent exposure of the security bug in the 4BSD fingerd caused by use of gets(3) reminded me that gets is a bug waiting to happen and should be stamped out. I have deleted gets from my stdio implementation (my first ANSI incompatibility!), the folks at Bell Labs Research have deleted gets from their C library, now it's your turn. We need to get the next ANSI C standard, the relevant POSIX standard(s), the next edition of the SVID, the next System V, the next 4BSD, the next SunOS and the next release from your favourite C vendor to delete gets. Let your vendor know that you want to see gets deleted from its next release, delete gets.o from your C library, move gets.o to -lgets, define gets(s) as "gets is unsafe; use fgets(3)"<><><> in your stdio.h; do whatever you can to help. If your vendor protests your reasonable request, point out that gets, as part of stdio, is a decade-old backward compatibility hack for compatibility with the Sixth Edition UNIX Portable I/O Library, which was utterly replaced by stdio no later than 1979. Accept no excuses; converting programs from using gets to fgets is largely mechanical, and stripping trailing newlines is trivial to code yourself. With your help, we can stamp out gets in our lifetimes. -- Geoff Collyer utzoo!utstat!geoff, geoff@utstat.toronto.edu