Andrew,
I noticed this follow up patch did not make it's way into -mm and
subsequently to 2.6.15-rc2. The uid_t and gid_t fields appear to present
a 32/64-bit userspace/kernel problem for some archs.
This patch addresses the problem by fixing the size to the largest
size for uid_t/gid_t used in the kernel. This preserves the total size of
the event structure while ensuring that the layouts of the ID change event
match in 32 and 64-bit kernels and applications.
Please apply.
Signed-off-by: Matt Helsley <[email protected]>
---
Index: linux-2.6.15-rc2/include/linux/cn_proc.h
===================================================================
--- linux-2.6.15-rc2.orig/include/linux/cn_proc.h
+++ linux-2.6.15-rc2/include/linux/cn_proc.h
@@ -84,16 +84,16 @@ struct proc_event {
struct id_proc_event {
pid_t process_pid;
pid_t process_tgid;
union {
- uid_t ruid; /* current->uid */
- gid_t rgid; /* current->gid */
+ __u32 ruid; /* task uid */
+ __u32 rgid; /* task gid */
} r;
union {
- uid_t euid;
- gid_t egid;
+ __u32 euid;
+ __u32 egid;
} e;
} id;
struct exit_proc_event {
pid_t process_pid;