diff options
author | Dave Jones <davej@redhat.com> | 2006-04-10 09:02:40 +0200 |
---|---|---|
committer | Jens Axboe <axboe@suse.de> | 2006-04-10 09:02:40 +0200 |
commit | 9aefe431f5a000884db7ae74ac208de814fe5913 (patch) | |
tree | 2a5a5469f0a56529c78ca067d798fff0363207a3 /fs | |
parent | c7f21e4f5a3d4e378e4d453b2be209dcfd1bb964 (diff) |
[PATCH] splice: potential !page dereference
We can get to out: with a NULL page, which we probably
don't want to be calling page_cache_release() on.
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/splice.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/splice.c b/fs/splice.c index b450acdff397..26f5f7ecee5c 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -445,7 +445,7 @@ find_page: ret = -ENOMEM; page = find_or_create_page(mapping, index, gfp_mask); if (!page) - goto out; + goto out_nomem; /* * If the page is uptodate, it is also locked. If it isn't @@ -508,6 +508,7 @@ out: page_cache_release(page); unlock_page(page); } +out_nomem: buf->ops->unmap(info, buf); return ret; } |