libio backward compat bug? involving setmntent()
Zack Weinberg
zack@rabi.columbia.edu
Tue Apr 13 06:33:00 GMT 1999
The appended slightly-out-of-spec code segfaults when compiled on a
libc 2.0 system and run on a libc 2.1 system. The problem is that
setmntent() returns a new FILE*, but fclose is bound to the old
fclose.
Do we want to support this, and if so, how? (Have old fclose
recognize when it's handed a new FILE* and call _IO_new_fclose?)
zw
#include <stdio.h>
#include <mntent.h>
int
main(void)
{
struct mntent *me;
FILE *fp;
fp = setmntent("/etc/mtab", "r");
while((me = getmntent(fp)) != 0)
printf("%s on %s\ttype %s opts %s freq %d pass %d\n",
me->mnt_fsname, me->mnt_dir, me->mnt_type,
me->mnt_opts, me->mnt_freq, me->mnt_passno);
fclose(fp);
return 0;
}
More information about the Libc-hacker
mailing list