]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
ptp: check that rsv field is zero in struct ptp_sys_offset_extended
authorEugene Syromiatnikov <esyr@redhat.com>
Mon, 7 Jan 2019 15:22:29 +0000 (16:22 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Jan 2019 21:22:56 +0000 (16:22 -0500)
Otherwise it is impossible to use it for something else, as it will break
userspace that puts garbage there.

The same check should be done in other structures, but the fact that
data in reserved fields is ignored is already part of the kernel ABI.

Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/ptp/ptp_chardev.c

index 797fab33bb983913d50864ce7c6a792a6c3a6f95..7cbea796652aca1ef537d9cdc68b645d340f73ee 100644 (file)
@@ -224,7 +224,8 @@ long ptp_ioctl(struct posix_clock *pc, unsigned int cmd, unsigned long arg)
                        extoff = NULL;
                        break;
                }
-               if (extoff->n_samples > PTP_MAX_SAMPLES) {
+               if (extoff->n_samples > PTP_MAX_SAMPLES
+                   || extoff->rsv[0] || extoff->rsv[1] || extoff->rsv[2]) {
                        err = -EINVAL;
                        break;
                }