Path: utzoo!attcan!uunet!wyse!vsi1!apple!rutgers!mailrus!uflorida!haven!adm!smoke!gwyn From: gwyn@smoke.BRL.MIL (Doug Gwyn ) Newsgroups: comp.sources.bugs Subject: directory routine bug Keywords: closedir directory access routine bug Message-ID: <8862@smoke.BRL.MIL> Date: 12 Nov 88 03:39:22 GMT Organization: Ballistic Research Lab (BRL), APG, MD. Lines: 41 Please replace closedir.c in my recent posting of the public-domain directory access routine sources with the following: /* closedir -- close a directory stream last edit: 11-Nov-1988 D A Gwyn */ #include #include #include typedef char *pointer; /* (void *) if you have it */ extern void free(); extern int close(); extern int errno; #ifndef NULL #define NULL 0 #endif int closedir( dirp ) register DIR *dirp; /* stream from opendir() */ { register int fd; if ( dirp == NULL || dirp->dd_buf == NULL ) { errno = EFAULT; return -1; /* invalid pointer */ } fd = dirp->dd_fd; /* bug fix thanks to R. Salz */ free( (pointer)dirp->dd_buf ); free( (pointer)dirp ); return close( fd ); }