kernel: kallsyms: memory override issue, need check destination buffer length
authorChen Gang <gang.chen@asianux.com>
Mon, 15 Apr 2013 05:34:43 +0000 (15:04 +0930)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 15 Apr 2013 05:47:26 +0000 (15:17 +0930)
commite3f26752f0f8a6aade580115e1e68bcb1a4bc040
tree04e818066d7d0faa64abfe55b4841da984f3812f
parent07c449bbc6aa514098c4f12c7b04180cec2417c6
kernel: kallsyms: memory override issue, need check destination buffer length

  We don't export any symbols > 128 characters, but if we did then
  kallsyms_expand_symbol() would overflow the buffer handed to it.
  So we need check destination buffer length when copying.

  the related test:
    if we define an EXPORT function which name more than 128.
    will panic when call kallsyms_lookup_name by init_kprobes on booting.
    after check the length (provide this patch), it is ok.

  Implementaion:
    add additional destination buffer length parameter (maxlen)
    if uncompressed string is too long (>= maxlen), it will be truncated.
    not check the parameters whether valid, since it is a static function.

Signed-off-by: Chen Gang <gang.chen@asianux.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
kernel/kallsyms.c