From: Dmitry V. Levin Date: Thu, 30 Jun 2016 22:26:35 +0000 (+0000) Subject: msghdr.c: apply a sane limit to the length of IP_ORIGDSTADDR address X-Git-Tag: v4.13~80 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dfeea6958a797ddc29fe13bc6663a880ec675395;p=strace msghdr.c: apply a sane limit to the length of IP_ORIGDSTADDR address * msghdr.c (print_cmsg_ip_origdstaddr): Limit address length to the size of struct sockaddr_storage. --- diff --git a/msghdr.c b/msghdr.c index 5ebaeaa6..ed56849b 100644 --- a/msghdr.c +++ b/msghdr.c @@ -202,11 +202,12 @@ static void print_cmsg_ip_origdstaddr(struct tcb *tcp, const void *cmsg_data, const size_t data_len) { - if (sizeof(struct sockaddr_in) > data_len) - return; + const int addr_len = + data_len > sizeof(struct sockaddr_storage) + ? sizeof(struct sockaddr_storage) : data_len; tprints(", cmsg_data="); - print_sockaddr(tcp, cmsg_data, data_len); + print_sockaddr(tcp, cmsg_data, addr_len); } static void