Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c5dbf2a authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

signal: Introduce clear_siginfo



Unfortunately struct siginfo has holes both in the common part of the
structure, in the union members, and in the lack of padding of the
union members.  The result of those wholes is that the C standard does
not guarantee those bits will be initialized.  As struct siginfo is
for communication between the kernel and userspace that is a problem.

Add the helper function clear_siginfo that is guaranteed to clear all of
the bits in struct siginfo so when the structure is copied there is no danger
of copying old kernel data and causing a leak of information from kernel
space to userspace.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 8c36fdf5
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,11 @@ static inline void copy_siginfo(struct siginfo *to, const struct siginfo *from)
	memcpy(to, from, sizeof(*to));
}

static inline void clear_siginfo(struct siginfo *info)
{
	memset(info, 0, sizeof(*info));
}

int copy_siginfo_to_user(struct siginfo __user *to, const struct siginfo *from);

enum siginfo_layout {