On Monday 19 October 2015 14:58:20 Paul Osmialowski wrote:
quoted hunk ↗ jump to hunk
+
+struct kmsg_cmd_buffer_add {
+ size_t size;
+ unsigned short mode;
+ int minor;
+} __attribute__((packed));
+
+#define KMSG_IOCTL_MAGIC 0xBB
+
+/*
Try to avoid using packed unaligned data structures. Here I would
just use __u64 and __u32 members.
quoted hunk ↗ jump to hunk
+ case KMSG_CMD_BUFFER_ADD:
+ if (copy_from_user(&size, argp, sizeof(size)))
+ return -EFAULT;
+ argp += sizeof(size);
+ if (copy_from_user(&mode, argp, sizeof(mode)))
+ return -EFAULT;
This is a rather unusual way to access the data. Just copy the
entire structure to the stack.
Arnd