rose: limit sk_filter trim to payload
[pandora-kernel.git] / net / rose / rose_in.c
index 4ee0879..e5029c5 100644 (file)
@@ -165,7 +165,8 @@ static int rose_state3_machine(struct sock *sk, struct sk_buff *skb, int framety
                rose_frames_acked(sk, nr);
                if (ns == rose->vr) {
                        rose_start_idletimer(sk);
-                       if (sock_queue_rcv_skb(sk, skb) == 0) {
+                       if (sk_filter_trim_cap(sk, skb, ROSE_MIN_LEN) == 0 &&
+                           __sock_queue_rcv_skb(sk, skb) == 0) {
                                rose->vr = (rose->vr + 1) % ROSE_MODULUS;
                                queued = 1;
                        } else {
@@ -182,7 +183,7 @@ static int rose_state3_machine(struct sock *sk, struct sk_buff *skb, int framety
                                break;
                        }
                        if (atomic_read(&sk->sk_rmem_alloc) >
-                           (sk->sk_rcvbuf / 2))
+                           (sk->sk_rcvbuf >> 1))
                                rose->condition |= ROSE_COND_OWN_RX_BUSY;
                }
                /*