]> git.baikalelectronics.ru Git - kernel.git/commit
arch: sparc: kernel: check the memory length before use strcpy().
authorChen Gang <gang.chen@asianux.com>
Sat, 22 Jun 2013 05:26:09 +0000 (13:26 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Jul 2013 20:35:51 +0000 (13:35 -0700)
commit0b2afc747a0fee872c0c1da33ba8114a11f78676
treef5c58406820460df5083e5352c26cca6b87adac9
parentc3bab92256b1f8c21f25f4a7772b720abd818926
arch: sparc: kernel: check the memory length before use strcpy().

For the related next strcpy(), the destination length is less than 512,
but the source maximize length may be 'OPROMMAXPARAM' (4096) which is
more than 512.

One work flow may:
  openprom_sunos_ioctl() ->  if (cmd == OPROMSETOPT)
    getstrings() ->  will alloc buffer with size 'OPROMMAXPARAM'.
    opromsetopt() ->  devide the buffer into 'var' and 'value'
      of_set_property() -> pass
        prom_setprop() -> pass
          ldom_set_var()

And do not mind the additional 4 alignment buffer increasing, since
'sizeof(pkt) - sizeof(pkt.header)' is 4 alignment at least.

Signed-off-by: Chen Gang <gang.chen@asianux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/ds.c