Messages in this thread | | | Subject | Re: [PATCH] staging: comedi: add error handling for vmap | From | Ian Abbott <> | Date | Thu, 14 Jun 2018 10:58:41 +0100 |
| |
On 14/06/18 08:57, Zhouyang Jia wrote: > Hi, > > I reported this bug since more than 90% callsites of vmap are > well handled in kernel. The caller function __comedi_buf_alloc > has no return value, so I don't know how the error is handled in > its caller. > > I believe there would be a better error handling method, but I > have limited domain knowledge, so I'm sorry I can't help here. > > Thanks for your kind reply. > > Best, > Zhouyang
__comedi_buf_alloc is just a helper function factored out of, and called by comedi_buf_alloc. __comedi_buf_alloc does not clean up after itself on error because it expects comedi_buf_alloc to detect the error and call __comedi_buf_free to clean up any partially allocated mess:
__comedi_buf_alloc(dev, s, n_pages); if (!async->prealloc_buf) { /* * [This is not the actual comment in the code!] * * Error occured in __comedi_buf_alloc(). * Buffer may be partially allocated. * Call __comedi_buf_free() to clean it up. */ __comedi_buf_free(dev, s); return -ENOMEM; }
> > > > 2018-06-12 19:50 GMT+08:00 Dan Carpenter <dan.carpenter@oracle.com > <mailto:dan.carpenter@oracle.com>>: > > On Tue, Jun 12, 2018 at 11:25:35AM +0800, Zhouyang Jia wrote: > > When vmap fails, the lack of error-handling code may > > cause unexpected results. > > > > This patch adds error-handling code after calling vmap. > > > > Again, this is not error handling, this is just an error message. This > error condition is handled in the caller. > > regards, > dan carpenter > > >
-- -=( Ian Abbott <abbotti@mev.co.uk> || Web: www.mev.co.uk )=- -=( MEV Ltd. is a company registered in England & Wales. )=- -=( Registered number: 02862268. Registered address: )=- -=( 15 West Park Road, Bramhall, STOCKPORT, SK7 3JZ, UK. )=-
| |