Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b1b2e7cf4a9742f61d76fcb419b1fd13159876a5
Commit:     b1b2e7cf4a9742f61d76fcb419b1fd13159876a5
Parent:     4e3dfacaa0b8e469f412ae776f222102042d7e24
Author:     Jesper Juhl <[EMAIL PROTECTED]>
AuthorDate: Tue Oct 16 01:27:51 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Tue Oct 16 09:43:10 2007 -0700

    fix possible NULL deref on low memory condition in capidrv.c::send_message()
    
    If we fail to allocate an skb in
    drivers/isdn/capi/capidrv.c::send_message(), then we'll end up
    dereferencing a NULL pointer.
    Since out of memory conditions are not unheard of, I believe it
    is better to print a error message and just return rather than
    bring down the whole kernel.
    Sure, doing this may upset some application, but that's still
    better than crashing the whole system.
    
    Signed-off-by: Jesper Juhl <[EMAIL PROTECTED]>
    Acked-by: Karsten Keil <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 drivers/isdn/capi/capidrv.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/isdn/capi/capidrv.c b/drivers/isdn/capi/capidrv.c
index 23b6f7b..476012b 100644
--- a/drivers/isdn/capi/capidrv.c
+++ b/drivers/isdn/capi/capidrv.c
@@ -506,9 +506,14 @@ static void send_message(capidrv_contr * card, _cmsg * 
cmsg)
 {
        struct sk_buff *skb;
        size_t len;
+
        capi_cmsg2message(cmsg, cmsg->buf);
        len = CAPIMSG_LEN(cmsg->buf);
        skb = alloc_skb(len, GFP_ATOMIC);
+       if (!skb) {
+               printk(KERN_ERR "capidrv::send_message: can't allocate mem\n");
+               return;
+       }
        memcpy(skb_put(skb, len), cmsg->buf, len);
        if (capi20_put_message(&global.ap, skb) != CAPI_NOERROR)
                kfree_skb(skb);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to