Skip to content
Snippets Groups Projects
  1. Aug 18, 2008
  2. Aug 11, 2008
  3. Jul 26, 2008
    • Brian Swetland's avatar
      Revert "[Bluetooth] Disconnect when encryption gets disabled" · 5bc644f5
      Brian Swetland authored
      This reverts commit 8d1a5d14fabf670e2729663562b25bba30ced449.
      5bc644f5
    • Marcel Holtmann's avatar
      [Bluetooth] Add option to disable eSCO connection creation · 53325272
      Marcel Holtmann authored
      
      It has been reported that some eSCO capable headsets are not able to
      connect properly. The real reason for this is unclear at the moment. So
      for easier testing add a module parameter to disable eSCO connection
      creation.
      
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      53325272
    • Marcel Holtmann's avatar
      [Bluetooth] Update authentication status after successful encryption · fa53ce8f
      Marcel Holtmann authored
      
      The authentication status is not communicated to both parties. This is
      actually a flaw in the Bluetooth specification. Only the requesting side
      really knows if the authentication was successful or not. This piece of
      information is however needed on the other side to know if it has to
      trigger the authentication procedure or not. Worst case is that both
      sides will request authentication at different times, but this should
      be avoided since it costs extra time when setting up a new connection.
      
      For Bluetooth encryption it is required to authenticate the link first
      and the encryption status is communicated to both sides. So when a link
      is switched to encryption it is possible to update the authentication
      status since it implies an authenticated link.
      
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      fa53ce8f
    • Marcel Holtmann's avatar
      [Bluetooth] Disconnect when encryption gets disabled · 2c1344bd
      Marcel Holtmann authored
      
      The Bluetooth specification allows to enable or disable the encryption
      of an ACL link at any time by either the peer or the remote device. If
      a L2CAP or RFCOMM connection requested an encrypted link, they will now
      disconnect that link if the encryption gets disabled. Higher protocols
      that don't care about encryption (like SDP) are not affected.
      
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      2c1344bd
    • Marcel Holtmann's avatar
      [Bluetooth] Enforce security for outgoing RFCOMM connections · 88bd91a8
      Marcel Holtmann authored
      
      Recent tests with various Bluetooth headsets have shown that some of
      them don't enforce authentication and encryption when connecting. All
      of them leave it up to the host stack to enforce it. Non of them should
      allow unencrypted connections, but that is how it is. So in case the
      link mode settings require authentication and/or encryption it will now
      also be enforced on outgoing RFCOMM connections. Previously this was
      only done for incoming connections.
      
      This support has a small drawback from a protocol level point of view
      since the host stack can't really tell with 100% certainty if a remote
      side is already authenticated or not. So if both sides are configured
      to enforce authentication it will be requested twice. Most Bluetooth
      chips are caching this information and thus no extra authentication
      procedure has to be triggered over-the-air, but it can happen.
      
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      88bd91a8
  4. Jul 04, 2008
  5. Apr 16, 2008
  6. Apr 15, 2008
  7. Apr 14, 2008
  8. Apr 13, 2008
  9. Apr 11, 2008
  10. Apr 10, 2008
    • David S. Miller's avatar
      [IPV4]: Fix byte value boundary check in do_ip_getsockopt(). · 951e07c9
      David S. Miller authored
      
      This fixes kernel bugzilla 10371.
      
      As reported by M.Piechaczek@osmosys.tv, if we try to grab a
      char sized socket option value, as in:
      
        unsigned char ttl = 255;
        socklen_t     len = sizeof(ttl);
        setsockopt(socket, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, &len);
      
        getsockopt(socket, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, &len);
      
      The ttl returned will be wrong on big-endian, and on both little-
      endian and big-endian the next three bytes in userspace are written
      with garbage.
      
      It's because of this test in do_ip_getsockopt():
      
      	if (len < sizeof(int) && len > 0 && val>=0 && val<255) {
      
      It should allow a 'val' of 255 to pass here, but it doesn't so it
      copies a full 'int' back to userspace.
      
      On little-endian that will write the correct value into the location
      but it spams on the next three bytes in userspace.  On big endian it
      writes the wrong value into the location and spams the next three
      bytes.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      951e07c9
  11. Apr 09, 2008
Loading