[PATCH 1/1] lib: sbi_ecall_base: add check for function parameter pointers

秦海俊 qinhaijun at eswincomputing.com
Tue Nov 22 17:24:24 PST 2022


Hi Xiang W

Thanks for your review, then keep it as it is.

> 在 2022-11-22星期二的 15:13 +0800,qinhaijun at eswincomputing.com写道:
> > From: haijun qin <qinhaijun at eswincomputing.com>
> > 
> > When a null pointer is passed in by mistake, the program will
> > enter the trap, so the check for the pointer is added.
> > 
> > Signed-off-by: haijun qin <qinhaijun at eswincomputing.com>
> 
> sbi_ecall_extension->handle is only called at
> https://github.com/riscv-software-src/opensbi/blob/master/lib/sbi/sbi_ecall.c#L110, 
> where out_val is not empty.
> 
> If you want to detect parameters, you also need to detect regs and out_trap. and
> add code like this in each extension implementation.
> 
> Regards,
> Xiang W
> > ---
> >  lib/sbi/sbi_ecall_base.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/lib/sbi/sbi_ecall_base.c b/lib/sbi/sbi_ecall_base.c
> > index 786d2ac..3d4a367 100644
> > --- a/lib/sbi/sbi_ecall_base.c
> > +++ b/lib/sbi/sbi_ecall_base.c
> > @@ -39,6 +39,9 @@ static int sbi_ecall_base_handler(unsigned long extid, unsigned long funcid,
> >  {
> >         int ret = 0;
> >  
> > +       if(out_val == NULL)
> > +               return SBI_EINVALID_ADDR;
> > +
> >         switch (funcid) {
> >         case SBI_EXT_BASE_GET_SPEC_VERSION:
> >                 *out_val = (SBI_ECALL_VERSION_MAJOR <<
> > -- 
> > 2.17.1
> > 
> > 
> 
> 
> 
> -- 
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi


More information about the opensbi mailing list