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