Messages in this thread | | | Date | Tue, 21 Aug 2012 06:51:58 -0700 | Subject | Re: [PATCH] fs: Preserve error code in get_empty_filp() | From | Anatol Pomozov <> |
| |
Hi
On Tue, Aug 21, 2012 at 3:06 AM, Jan Engelhardt <jengelh@inai.de> wrote: > > > On Wednesday 2012-08-01 20:19, anatol.pomozov@gmail.com wrote: > >Allocating a file structure in function get_empty_filp() might fail > > because > >of several reasons: > > - not enough memory for file structures > > - operation is not allowed > > - user is over its limit > > > >Currently the function returns NULL in all cases and we loose the exact > >reason of the error. All callers of get_empty_filp() assume that the > > function > >can fail with ENFILE only. > > > >Return error through pointer. Change all callers to preserve this error > > code. > > > percpu_counter_inc(&nr_files); > > f->f_cred = get_cred(cred); > >- if (security_file_alloc(f)) > >+ if (security_file_alloc(f)) { > >+ error = -EPERM; > > goto fail_sec; > >+ } > > You are not preserving the error code from security_file_alloc here. > > In particular, apparmoar/lsm.c: file_alloc_security can return -ENOMEM, > for example.
Yep, this was a bug in the first version of the patch. It the latest version (from Aug 2) it is fixed, please review this version instead.
| |