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

Commit 9705b410 authored by Alan Stern's avatar Alan Stern Committed by Sasha Levin
Browse files

USB: usbfs: don't leak kernel data in siginfo



commit f0c2b68198589249afd2b1f2c4e8de8c03e19c16 upstream.

When a signal is delivered, the information in the siginfo structure
is copied to userspace.  Good security practice dicatates that the
unused fields in this structure should be initialized to 0 so that
random kernel stack data isn't exposed to the user.  This patch adds
such an initialization to the two places where usbfs raises signals.

Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Reported-by: default avatarDave Mielke <dave@mielke.cc>
Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
parent 40570334
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -501,6 +501,7 @@ static void async_completed(struct urb *urb)
	as->status = urb->status;
	signr = as->signr;
	if (signr) {
		memset(&sinfo, 0, sizeof(sinfo));
		sinfo.si_signo = as->signr;
		sinfo.si_errno = as->status;
		sinfo.si_code = SI_ASYNCIO;
@@ -2371,6 +2372,7 @@ static void usbdev_remove(struct usb_device *udev)
		wake_up_all(&ps->wait);
		list_del_init(&ps->list);
		if (ps->discsignr) {
			memset(&sinfo, 0, sizeof(sinfo));
			sinfo.si_signo = ps->discsignr;
			sinfo.si_errno = EPIPE;
			sinfo.si_code = SI_ASYNCIO;