16 Jul, 2008

2 commits


15 Jul, 2008

1 commit


11 Jul, 2008

1 commit


10 Jul, 2008

30 commits


08 Jul, 2008

1 commit

  • Coverity CID: 2306 & 2307 RESOURCE_LEAK

    In the second for loop in test_cipher(), data is allocated space with
    kzalloc() and is only ever freed in an error case.
    Looking at this loop, data is written to this memory but nothing seems
    to read from it.
    So here is a patch removing the allocation, I think this is the right
    fix.

    Only compile tested.

    Signed-off-by: Darren Jenkins
    Signed-off-by: Herbert Xu

    Darren Jenkins
     

16 Jun, 2008

1 commit


02 Jun, 2008

1 commit

  • Steps to reproduce:

    modprobe tcrypt # with CONFIG_DEBUG_SG=y

    testing cts(cbc(aes)) encryption
    test 1 (128 bit key):
    ------------[ cut here ]------------
    kernel BUG at include/linux/scatterlist.h:65!
    invalid opcode: 0000 [1] PREEMPT SMP DEBUG_PAGEALLOC
    CPU 0
    Modules linked in: tea xts twofish twofish_common tcrypt(+) [maaaany]
    Pid: 16151, comm: modprobe Not tainted 2.6.26-rc4-fat #7
    RIP: 0010:[] [] :cts:cts_cbc_encrypt+0x151/0x355
    RSP: 0018:ffff81016f497a88 EFLAGS: 00010286
    RAX: ffffe20009535d58 RBX: ffff81016f497af0 RCX: 0000000087654321
    RDX: ffff8100010d4f28 RSI: ffff81016f497ee8 RDI: ffff81016f497ac0
    RBP: ffff81016f497c38 R08: 0000000000000000 R09: 0000000000000011
    R10: ffffffff00000008 R11: ffff8100010d4f28 R12: ffff81016f497ac0
    R13: ffff81016f497b30 R14: 0000000000000010 R15: 0000000000000010
    FS: 00007fac6fa276f0(0000) GS:ffffffff8060e000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00007f12ca7cc000 CR3: 000000016f441000 CR4: 00000000000026e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff4ff0 DR7: 0000000000000400
    Process modprobe (pid: 16151, threadinfo ffff81016f496000, task ffff8101755b4ae0)
    Stack: 0000000000000001 ffff81016f496000 ffffffff80719f78 0000000000000001
    0000000000000001 ffffffff8020c87c ffff81016f99c918 20646c756f772049
    65687420656b696c 0000000000000020 0000000000000000 0000000033341102
    Call Trace:
    [] ? restore_args+0x0/0x30
    [] ? :aes_generic:crypto_aes_expand_key+0x311/0x369
    [] ? check_object+0x15a/0x213
    [] ? init_object+0x6e/0x76
    [] ? __slab_free+0xfc/0x371
    [] :cts:crypto_cts_encrypt+0xbb/0xca
    [] ? :crypto_blkcipher:setkey+0xc7/0xec
    [] :crypto_blkcipher:async_encrypt+0x38/0x3a
    [] :tcrypt:test_cipher+0x261/0x7c6
    [] :tcrypt:tcrypt_mod_init+0x9df/0x1b30
    [] sys_init_module+0x9e/0x1b2
    [] system_call_after_swapgs+0x8a/0x8f
    Code: 45 c0 e8 aa 24 63 df 48 c1 e8 0c 48 b9 00 00 00 00 00 e2 ff ff 48 8b 55 88 48 6b c0 68 48 01 c8 b9 21 43 65 87 48 39 4d 80 74 04 0b eb fe f6 c2 01 74 04 0f 0b eb fe 83 e2 03 4c 89 ef 44 89
    RIP [] :cts:cts_cbc_encrypt+0x151/0x355
    RSP
    ---[ end trace e8bahiarjand37fd ]---

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Herbert Xu

    Alexey Dobriyan
     

19 May, 2008

1 commit

  • Move rcu-protected lists from list.h into a new header file rculist.h.

    This is done because list are a very used primitive structure all over the
    kernel and it's currently impossible to include other header files in this
    list.h without creating some circular dependencies.

    For example, list.h implements rcu-protected list and uses rcu_dereference()
    without including rcupdate.h. It actually compiles because users of
    rcu_dereference() are macros. Others RCU functions could be used too but
    aren't probably because of this.

    Therefore this patch creates rculist.h which includes rcupdates without to
    many changes/troubles.

    Signed-off-by: Franck Bui-Huu
    Acked-by: Paul E. McKenney
    Acked-by: Josh Triplett
    Signed-off-by: Andrew Morton
    Signed-off-by: Ingo Molnar

    Franck Bui-Huu
     

07 May, 2008

1 commit

  • When HMAC gets a key longer than the block size of the hash, it needs
    to feed it as input to the hash to reduce it to a fixed length. As
    it is HMAC converts the key to a scatter and gather list. However,
    this doesn't work on certain platforms if the key is not allocated
    via kmalloc. For example, the keys from tcrypt are stored in the
    rodata section and this causes it to fail with HMAC on x86-64.

    This patch fixes this by copying the key to memory obtained via
    kmalloc before hashing it.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

01 May, 2008

1 commit