Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Update
qemu-linux-user
0139-slirp-check-data-length-while-emula.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0139-slirp-check-data-length-while-emula.patch of Package qemu-linux-user
From 3ec54dcb2bb4bad73fd29e60e4deeabbee8715bf 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 b2c7a8cba0..301f3c3a84 100644 --- a/slirp/tcp_subr.c +++ b/slirp/tcp_subr.c @@ -641,6 +641,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