From nobody Tue Nov 4 18:52:26 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1530554247755703.9404236441923; Mon, 2 Jul 2018 10:57:27 -0700 (PDT) Received: from localhost ([::1]:34675 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa34p-00019t-2m for importer@patchew.org; Mon, 02 Jul 2018 13:57:27 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60593) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fa2yX-00054L-Vz for qemu-devel@nongnu.org; Mon, 02 Jul 2018 13:50:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fa2yX-0003i4-0X for qemu-devel@nongnu.org; Mon, 02 Jul 2018 13:50:58 -0400 Received: from mail-vk0-x235.google.com ([2607:f8b0:400c:c05::235]:43439) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fa2yW-0003hs-RJ for qemu-devel@nongnu.org; Mon, 02 Jul 2018 13:50:56 -0400 Received: by mail-vk0-x235.google.com with SMTP id d74-v6so9635497vke.10 for ; Mon, 02 Jul 2018 10:50:56 -0700 (PDT) Received: from x1.local ([138.117.48.222]) by smtp.gmail.com with ESMTPSA id j22-v6sm993152uag.15.2018.07.02.10.50.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 02 Jul 2018 10:50:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FwmnrMy0gzWXGDjcsvxYGCHfsxS8F2FPftnmGjQJtJc=; b=HHtKYkV63Gi3KUocs2WXm19/4YAURr22HZe8Ka4G7XxAUN1hOfxDaPK6jCHocDRddB BJ4vtWRCV/xfqOktQyurQg4a3vbViFCS5eR8LJR2n+17nBXlHcv37TKwAIBaZigQaASk Xs3lb9ZA5Te828ChYFYxPifqPytDIG5mfKJjdJcYn5SOf9IgX21AXfC8DMqD35goNgSq aS7Mq6cqueWcMzvcOzLEgGnHYzvLp+CW3+vQ51nzuSLsP+DRUakkjt0/dbIvywwaR+jE SoDTLpihCrvR1i6v9IMurz57sXf95tia6OzF1dfLcYAysguSKVrI61/0sz3r7Ybxk6R1 2I7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=FwmnrMy0gzWXGDjcsvxYGCHfsxS8F2FPftnmGjQJtJc=; b=lYQfuXTBP75CRdnEeSqOAFD3ph/Kz6qi877cIirewH96FTOzcSdhmhf3E1qtkkgNEg qxu19B0e7SYzpqcNxOfujqDiz8gvdjTJX7QIH65/QNkWuzJYuAyILUSM9Q051NoIiXpE COL6knQ3jEobs/J120T/s1zfawQ8igm8T0wFbYWKzRavvpCbvIF9CMhK2gjt8IZmN95+ aDy5m6gMwoFyCLhrl3lpE2RqGMdd66wYsfNxQfirAfXUYqGVnfKNgBEz9HQ/KPCD2AzP 4Be8Dd8OzdMx7GJq1GGCu2RLUNvHIbCIrhwunGAlUxcmJnhiJqiSKQtn8OLbVzBBhIC9 xF5Q== X-Gm-Message-State: APt69E19EmtGxV3AMofzW1SBK6mVfQ0T+rSV/XuLn3wz1CdgsSHtitnV 0GtA7HiwivTwgcotutT3zAk= X-Google-Smtp-Source: AAOMgpddUGJu+y/eLzixvvXazj7G5eLo6f62+FtTDzt2qgL7a+1qg3jYNP8txl8HS85kf1hH3MZD2g== X-Received: by 2002:a1f:2d8f:: with SMTP id t137-v6mr13013575vkt.113.1530553856173; Mon, 02 Jul 2018 10:50:56 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Laurent Vivier Date: Mon, 2 Jul 2018 14:50:23 -0300 Message-Id: <20180702175030.18621-7-f4bug@amsat.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180702175030.18621-1-f4bug@amsat.org> References: <20180702175030.18621-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400c:c05::235 Subject: [Qemu-devel] [PATCH v3 06/13] linux-user/strace: Dump AF_NETLINK sockaddr content X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Guido=20G=C3=BCnther?= , Riku Voipio , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Tested-By: Guido G=C3=BCnther --- linux-user/syscall_defs.h | 7 +++++++ linux-user/strace.c | 34 ++++++++++++++++++++++++++++++++++ linux-user/syscall.c | 6 ++++-- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 40bb60ef4c..5a0b76721f 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -152,6 +152,13 @@ struct target_sockaddr_un { uint8_t sun_path[108]; }; =20 +struct target_sockaddr_nl { + uint16_t nl_family; /* AF_NETLINK */ + uint16_t __pad; + uint32_t nl_pid; + uint32_t nl_groups; +}; + struct target_in_addr { uint32_t s_addr; /* big endian */ }; diff --git a/linux-user/strace.c b/linux-user/strace.c index 8a21d3bcfc..77e36467cd 100644 --- a/linux-user/strace.c +++ b/linux-user/strace.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include "qemu.h" =20 @@ -398,6 +399,12 @@ print_sockaddr(abi_ulong addr, abi_long addrlen) gemu_log("}"); break; } + case AF_NETLINK: { + struct target_sockaddr_nl *nl =3D (struct target_sockaddr_nl *= )sa; + gemu_log("{nl_family=3DAF_NETLINK,nl_pid=3D%u,nl_groups=3D%u}", + nl->nl_pid, nl->nl_groups); + break; + } default: gemu_log("{sa_family=3D%d, sa_data=3D{", sa->sa_family); for (i =3D 0; i < 13; i++) { @@ -424,6 +431,9 @@ print_socket_domain(int domain) case PF_INET: gemu_log("PF_INET"); break; + case PF_NETLINK: + gemu_log("PF_NETLINK"); + break; case PF_PACKET: gemu_log("PF_PACKET"); break; @@ -473,6 +483,30 @@ print_socket_protocol(int domain, int type, int protoc= ol) return; } =20 + if (domain =3D=3D AF_NETLINK) { + switch (protocol) { + case NETLINK_ROUTE: + gemu_log("NETLINK_ROUTE"); + break; + case NETLINK_AUDIT: + gemu_log("NETLINK_AUDIT"); + break; + case NETLINK_NETFILTER: + gemu_log("NETLINK_NETFILTER"); + break; + case NETLINK_RDMA: + gemu_log("NETLINK_RDMA"); + break; + case NETLINK_CRYPTO: + gemu_log("NETLINK_CRYPTO"); + break; + default: + gemu_log("%d", protocol); + break; + } + return; + } + switch (protocol) { case IPPROTO_IP: gemu_log("IPPROTO_IP"); diff --git a/linux-user/syscall.c b/linux-user/syscall.c index ad40682cee..9a11f8c4a6 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -1696,8 +1696,10 @@ static inline abi_long host_to_target_sockaddr(abi_u= long target_addr, sizeof(target_saddr->sa_family)) { target_saddr->sa_family =3D tswap16(addr->sa_family); } - if (addr->sa_family =3D=3D AF_NETLINK && len >=3D sizeof(struct sockad= dr_nl)) { - struct sockaddr_nl *target_nl =3D (struct sockaddr_nl *)target_sad= dr; + if (addr->sa_family =3D=3D AF_NETLINK && + len >=3D sizeof(struct target_sockaddr_nl)) { + struct target_sockaddr_nl *target_nl =3D + (struct target_sockaddr_nl *)target_saddr; target_nl->nl_pid =3D tswap32(target_nl->nl_pid); target_nl->nl_groups =3D tswap32(target_nl->nl_groups); } else if (addr->sa_family =3D=3D AF_PACKET) { --=20 2.18.0