This is the mail archive of the
newlib@sourceware.org
mailing list for the newlib project.
rewinddir before telldir
- From: xavier Guerin <xavier dot guerin at imag dot fr>
- To: newlib at sources dot redhat dot com
- Date: Thu, 25 Sep 2008 16:57:38 +0200
- Subject: rewinddir before telldir
Hi guys,
I fell on something strange in the implementation of the _seekdir function.
It appears that if you call _seekdir on a particular index without
having called telldir beforehand, the _seekdir function returns (file
telldir.c, line 138) without performing the seek operation. So far so
good, since the index should have been returned by telldir.
However, it's exactly what happens when you use the rewinddir function.
It's not unthinkable to parse a directory with readdir and then rewind
it without calling telldir. It's why (I imagine) rewinddir calls
_seekdir using the arbitrary value 0 as offset.
Wouldn't it be more correct to check for the loc value before returning
(line 138), and in case of 0 call lseek (dir -> dd_fd, 0, 0) ?
Regards,
Xavier
--
Xavier Guérin - Doctoral student
TIMA Laboratory, SLS Group
46, av. Félix Viallet, 38000 GRENOBLE, FR
Mail : xavier.guerin@imag.fr
Phone : +33(0)4 76 57 47 59
Ad Astra Per Aspera
Tristo è quel discepolo che non avanza suo maestro