slirp: check sscanf result when emulating ident
When emulating ident in tcp_emu, if the strchr checks passed but the
sscanf check failed, two uninitialized variables would be copied and
sent in the reply, so move this code inside the if(sscanf()) clause.
Signed-off-by: William Bowling <will@wbowling.info>
Cc: qemu-stable@nongnu.org
Cc: secalert@redhat.com
Message-Id: <1551476756-25749-1-git-send-email-will@wbowling.info>
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
(cherry picked from commit d3222975c7
)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
stable-3.1
parent
c6f25642e0
commit
83cd9ed3d7
|
@ -657,12 +657,12 @@ tcp_emu(struct socket *so, struct mbuf *m)
|
|||
break;
|
||||
}
|
||||
}
|
||||
so_rcv->sb_cc = snprintf(so_rcv->sb_data,
|
||||
so_rcv->sb_datalen,
|
||||
"%d,%d\r\n", n1, n2);
|
||||
so_rcv->sb_rptr = so_rcv->sb_data;
|
||||
so_rcv->sb_wptr = so_rcv->sb_data + so_rcv->sb_cc;
|
||||
}
|
||||
so_rcv->sb_cc = snprintf(so_rcv->sb_data,
|
||||
so_rcv->sb_datalen,
|
||||
"%d,%d\r\n", n1, n2);
|
||||
so_rcv->sb_rptr = so_rcv->sb_data;
|
||||
so_rcv->sb_wptr = so_rcv->sb_data + so_rcv->sb_cc;
|
||||
}
|
||||
m_free(m);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue