]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: check for errors when getting a new fd
authorNick Alcock <nick.alcock@oracle.com>
Mon, 31 Oct 2016 13:12:56 +0000 (13:12 +0000)
committerKris Van Hees <kris.van.hees@oracle.com>
Fri, 23 Dec 2016 22:32:57 +0000 (17:32 -0500)
get_unused_fd_flags() can legitimately fail, e.g. when the fd table is
full.  We need to diagnose that rather than trying to fd_install() the
resulting negative number.

Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
Acked-by: Kris Van Hees <kris.van.hees@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Orabug: 24977175

kernel/ptrace.c

index 10467305c8eb3d5f04beb448f1a11c5b2187dd20..39d9be896e028f9e09566eda2e3695189f313a16 100644 (file)
@@ -834,6 +834,11 @@ static int ptrace_getmapfd(struct task_struct *child, unsigned long addr,
        }
 
        new_fd = get_unused_fd_flags(O_CLOEXEC);
+       if (new_fd < 0) {
+               ret = new_fd;
+               goto err;
+       }
+
        ret = __put_user(new_fd, datalp);
        get_file(vma->vm_file);
        fd_install(new_fd, vma->vm_file);