1. 19 10月, 2011 2 次提交
    • E
      pptp: pptp_rcv_core() misses pskb_may_pull() call · 4ea2739e
      Eric Dumazet 提交于
      e1000e uses paged frags, so any layer incorrectly pulling bytes from skb
      can trigger a BUG in skb_pull()
      
      [951.142737]  [<ffffffff813d2f36>] skb_pull+0x15/0x17
      [951.142737]  [<ffffffffa0286824>] pptp_rcv_core+0x126/0x19a [pptp]
      [951.152725]  [<ffffffff813d17c4>] sk_receive_skb+0x69/0x105
      [951.163558]  [<ffffffffa0286993>] pptp_rcv+0xc8/0xdc [pptp]
      [951.165092]  [<ffffffffa02800a3>] gre_rcv+0x62/0x75 [gre]
      [951.165092]  [<ffffffff81410784>] ip_local_deliver_finish+0x150/0x1c1
      [951.177599]  [<ffffffff81410634>] ? ip_local_deliver_finish+0x0/0x1c1
      [951.177599]  [<ffffffff81410846>] NF_HOOK.clone.7+0x51/0x58
      [951.177599]  [<ffffffff81410996>] ip_local_deliver+0x51/0x55
      [951.177599]  [<ffffffff814105b9>] ip_rcv_finish+0x31a/0x33e
      [951.177599]  [<ffffffff8141029f>] ? ip_rcv_finish+0x0/0x33e
      [951.204898]  [<ffffffff81410846>] NF_HOOK.clone.7+0x51/0x58
      [951.214651]  [<ffffffff81410bb5>] ip_rcv+0x21b/0x246
      
      pptp_rcv_core() is a nice example of a function assuming everything it
      needs is available in skb head.
      Reported-by: NBradley Peterson <despite@gmail.com>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4ea2739e
    • E
      pptp: fix skb leak in pptp_xmit() · 8bae8bd6
      Eric Dumazet 提交于
      In case we cant transmit skb, we must free it
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Dmitry Kozlov <xeb@mail.ru>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8bae8bd6
  2. 24 6月, 2011 1 次提交
  3. 04 5月, 2011 2 次提交
  4. 13 3月, 2011 1 次提交
  5. 03 3月, 2011 1 次提交
  6. 13 12月, 2010 2 次提交
    • D
      ipv4: Don't pre-seed hoplimit metric. · 323e126f
      David S. Miller 提交于
      Always go through a new ip4_dst_hoplimit() helper, just like ipv6.
      
      This allowed several simplifications:
      
      1) The interim dst_metric_hoplimit() can go as it's no longer
         userd.
      
      2) The sysctl_ip_default_ttl entry no longer needs to use
         ipv4_doint_and_flush, since the sysctl is not cached in
         routing cache metrics any longer.
      
      3) ipv4_doint_and_flush no longer needs to be exported and
         therefore can be marked static.
      
      When ipv4_doint_and_flush_strategy was removed some time ago,
      the external declaration in ip.h was mistakenly left around
      so kill that off too.
      
      We have to move the sysctl_ip_default_ttl declaration into
      ipv4's route cache definition header net/route.h, because
      currently net/ip.h (where the declaration lives now) has
      a back dependency on net/route.h
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      323e126f
    • D
      5170ae82
  7. 28 11月, 2010 1 次提交
  8. 22 9月, 2010 1 次提交
  9. 22 8月, 2010 1 次提交
    • D
      PPTP: PPP over IPv4 (Point-to-Point Tunneling Protocol) · 00959ade
      Dmitry Kozlov 提交于
      PPP: introduce "pptp" module which implements point-to-point tunneling protocol using pppox framework
      NET: introduce the "gre" module for demultiplexing GRE packets on version criteria
           (required to pptp and ip_gre may coexists)
      NET: ip_gre: update to use the "gre" module
      
      This patch introduces then pptp support to the linux kernel which
      dramatically speeds up pptp vpn connections and decreases cpu usage in
      comparison of existing user-space implementation
      (poptop/pptpclient). There is accel-pptp project
      (https://sourceforge.net/projects/accel-pptp/) to utilize this module,
      it contains plugin for pppd to use pptp in client-mode and modified
      pptpd (poptop) to build high-performance pptp NAS.
      
      There was many changes from initial submitted patch, most important are:
      1. using rcu instead of read-write locks
      2. using static bitmap instead of dynamically allocated
      3. using vmalloc for memory allocation instead of BITS_PER_LONG + __get_free_pages
      4. fixed many coding style issues
      Thanks to Eric Dumazet.
      Signed-off-by: NDmitry Kozlov <xeb@mail.ru>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      00959ade