module: prevent warning when finit_module a 0 sized file
authorSasha Levin <sasha.levin@oracle.com>
Thu, 3 Jan 2013 00:39:53 +0000 (11:09 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Thu, 3 Jan 2013 00:40:32 +0000 (11:10 +1030)
If we try to finit_module on a file sized 0 bytes vmalloc will
scream and spit out a warning.

Since modules have to be bigger than 0 bytes anyways we can just
check that beforehand and avoid the warning.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
kernel/module.c

index 250092c..41bc118 100644 (file)
@@ -2527,6 +2527,13 @@ static int copy_module_from_fd(int fd, struct load_info *info)
                err = -EFBIG;
                goto out;
        }
+
+       /* Don't hand 0 to vmalloc, it whines. */
+       if (stat.size == 0) {
+               err = -EINVAL;
+               goto out;
+       }
+
        info->hdr = vmalloc(stat.size);
        if (!info->hdr) {
                err = -ENOMEM;