Re: [BUG] Suspected bug in getpeername and getsockname

From: David S. Miller (davem@redhat.com)
Date: Thu Jan 17 2002 - 17:30:15 EST


   From: "Balbir Singh" <balbir_soni@hotmail.com>
   Date: Thu, 17 Jan 2002 14:11:06 -0800

   The reasons why I wanted to pass the address is length
   is
   
   1. It gives more flexibility for any body implementing
      the protocol specific code.

And you could do what with this flexibility that can't be taken care
of at the top level?

   2. We anyway copy the length in move_addr_to_user, we
      might as well do it in the system call and pass the
      length to the protocol.

Why? What are you going to DO, read this: _DO_, with the
value?

   3. We can finally copy only the length specified back
      to the user as we do currently.
   
We already do this in move_addr_to_user. If we do it in
one place, we don't have to duplicate (and thus risk bugs
in) this logic in the various protocols.

   But, consider a case where a user passes a negative value
   in len.

Now you are totally talking non-sense. A negative len is
an error (-EINVAL) and move_addr_to_user handles this case
just fine.

   I feel the error should be caught first hand, we should not have
   spent the time and space calling the protocol specific code at all,
   we should catch the error and return immediately.
 ...
   Don't u feel they should be fixed.
   
If you want to move the "if (len < 0) return -EINVAL;" right before
the ->getname() invocation, feel free. However, this is code
duplication and is error prone.

But either way, this is not an argument at all to move the user len
into the protocols. YOU DONT NEED TO, and you never will, to
accomplish any legitimate task.

Again the question remains, why would you ever need the user len in
the protocol handlers? All I am hearing is a bunch of hot air so far
with no real substance.

Franks a lot,
David S. Miller
davem@redhat.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jan 23 2002 - 21:00:22 EST