This removes a dead store to variable `f' from libsa's readdir(),
which also avoids suspicious use of `fd' without validation.
OK?
Index: lib/libsa/readdir.c
===================================================================
RCS file: src/sys/lib/libsa/readdir.c,v
retrieving revision 1.9
diff -u -p -r1.9 readdir.c
--- lib/libsa/readdir.c 19 Nov 2014 20:28:56 -0000 1.9
+++ lib/libsa/readdir.c 10 Jan 2022 15:56:30 -0000
@@ -65,14 +65,17 @@ opendir(const char *name)
int
readdir(int fd, char *dest)
{
- struct open_file *f = &files[fd];
+ struct open_file *f;
- if (fd < 0 || fd >= SOPEN_MAX ||
- !((f = &files[fd])->f_flags & F_READ)) {
+ if (fd < 0 || fd >= SOPEN_MAX) {
+ errno = EBADF;
+ return (-1);
+ }
+ f = &files[fd];
+ if (!(f->f_flags & F_READ)) {
errno = EBADF;
return (-1);
}
-
if (f->f_flags & F_RAW) {
errno = EOPNOTSUPP;
return (-1);