Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
No build reason found for pool-leap-15.6:ppc64le
SUSE:SLE-12-SP3:GA
qemu.12301
0306-slirp-check-data-length-while-emula.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0306-slirp-check-data-length-while-emula.patch of Package qemu.12301
From 3fc00f3b240b85123eb3fe116a51f471f2d43da7 Mon Sep 17 00:00:00 2001 From: Prasad J Pandit <pjp@fedoraproject.org> Date: Sun, 13 Jan 2019 23:29:48 +0530 Subject: [PATCH] slirp: check data length while emulating ident function While emulating identification protocol, tcp_emu() does not check available space in the 'sc_rcv->sb_data' buffer. It could lead to heap buffer overflow issue. Add check to avoid it. Reported-by: Kira <864786842@qq.com> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> (cherry picked from commit a7104eda7dab99d0cdbd3595c211864cba415905) [BR: BSC#1123156 CVE-2019-6778, modify patch to use spaces instead of tabs] Signed-off-by: Bruce Rogers <brogers@suse.com> --- slirp/tcp_subr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/slirp/tcp_subr.c b/slirp/tcp_subr.c index 0555e18c5d..ca95e8c1bb 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -594,6 +594,10 @@ tcp_emu(struct socket *so, struct mbuf *m) socklen_t addrlen = sizeof(struct sockaddr_in); struct sbuf *so_rcv = &so->so_rcv; + if (m->m_len > so_rcv->sb_datalen - (so_rcv->sb_wptr - so_rcv->sb_data)) { + return 1; + } + memcpy(so_rcv->sb_wptr, m->m_data, m->m_len); so_rcv->sb_wptr += m->m_len; so_rcv->sb_rptr += m->m_len;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor