Date: Wed, 04 Feb 2009 15:54:41 +0100 From: Christoph Mallon <christoph.mallon@gmx.de> To: Christian Peron <csjp@freebsd.org> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: write-only variables in src/sys/ - possible bugs Message-ID: <4989AC31.6000904@gmx.de> In-Reply-To: <20090203231155.GA69101@jnz.sqrt.ca> References: <49874CA8.5090605@gmx.de> <20090203231155.GA69101@jnz.sqrt.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
Christian Peron schrieb:
> I started following up on this and ran into an issue for these:
>
> sys/net/bpf_buffer.c:133: warning: variable 'dst' is never read
> sys/net/bpf_buffer.c:134: warning: variable 'count' is never read
> sys/net/bpf_buffer.c:142: warning: variable 'dst' is never read
>
>
> /*
> * Scatter-gather data copy from an mbuf chain to the current kernel buffer.
> */
> void
> bpf_buffer_append_mbuf(struct bpf_d *d, caddr_t buf, u_int offset, void *src,
> u_int len)
> {
> const struct mbuf *m;
> u_char *dst;
> u_int count;
>
> m = (struct mbuf *)src;
> dst = (u_char *)buf + offset;
> while (len > 0) {
> if (m == NULL)
> panic("bpf_mcopy");
> count = min(m->m_len, len);
> bcopy(mtod(m, void *), dst, count);
> m = m->m_next;
> [..]
>
> Does it not consider being passed as an argument to a function as
> being read?
Yes, function arguments are considered being read. The problem is
different here: mtod() should be a macro, but the macro declaration was
missing (*cough* hacked build process *cough*). So the parser tried to
parse this as function call. Then it hit the "void *", which confused it
- it got a type while parsing an expression. I improved the error
correction, resolved a few other problems, too, and generated a new list:
http://tron.homeunix.org/unread_variables.log
(The list has a date at the top, if it is missing, you see the old list
in your browser cache)
The false positives, which you mentioned, are gone now - thanks for
reporting this. The list now contains about 1.000 entries and about 60
concern variables named 'error'.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4989AC31.6000904>
