Received: by 2002:a5b:505:0:0:0:0:0 with SMTP id o5csp1171956ybp; Wed, 9 Oct 2019 09:50:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqzSGPd3I5lHNwXRT0lYjOJIoBuJAt3x/Q3JOJuKoLUwq+B7BsNPgZXETneIGYLmK1OSC2md X-Received: by 2002:a17:906:55d1:: with SMTP id z17mr3806511ejp.300.1570639813772; Wed, 09 Oct 2019 09:50:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1570639813; cv=none; d=google.com; s=arc-20160816; b=Cqr27M9LItZPJPCRRIfYQST0e8259ndU8vgtbBBDFApxq6wWp/rUCRHVjwzz6WxuPa k45p+fPcTE93tlNEAU30wWPoXQQmxVXUZ/ivY5G32DSUGHvq3jFuJHSNX6JZ19/Vmr1a ixYItY8RmJVOajZsnG62wJQANLEFPAVcvEYCpi6h3xiFI5djjCUL9i58lhkpOCyK4VtX 2k044XuDoQEScChlNQ/qDnl2HSJ5JiYjtmyovPtMLVMLB7IzHeibuPjWWygO9I8YcBUa YUVqA3NolJbRpi8QiQ9R3Gtj0Bnhzt4uJg7AfFAv/ahNi3QfAKSIRsDNvk+pePm2oXab MFRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=detMJfVB6xaZ9+1Yel6NMmjjXdSYWvkB2Jgu5smfJfA=; b=pHT5hjc5hRn7oKuQe2+YryqJw3EKwpEcgYQSeMESo/WviBDEEsE36rjxkYzOUswRvz rAoZMUINzgEehUlwtwdjCSJ3yKVzu519o64/nOqCwSUpqUii62k8PrEVPBnhy2wD6yZF B1hrbUiPkvm6sebRxAtSIRE3VItSpT9tdajUdLctcVImNGCOMi0T3FThQp6Vpe5Iluyw 3GKJRT5QjI+b13X2fRAgJK7ZnSRJB8cMgARxPUgQSEOz/DN+d4qOPtjHaJCGwxkJHNME VFr1l4kdBmHNka5mQQY0lGXFA5pfxO3Z+/i+mnbpWxFPk/yPxuTBEnDSUFbJdF1Sdm0N zoXQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y20si1699913edo.436.2019.10.09.09.49.49; Wed, 09 Oct 2019 09:50:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731720AbfJIQtj (ORCPT + 99 others); Wed, 9 Oct 2019 12:49:39 -0400 Received: from relay11.mail.gandi.net ([217.70.178.231]:35825 "EHLO relay11.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731538AbfJIQti (ORCPT ); Wed, 9 Oct 2019 12:49:38 -0400 Received: from localhost.localdomain (238.210.broadband10.iol.cz [90.177.210.238]) (Authenticated sender: i.maximets@ovn.org) by relay11.mail.gandi.net (Postfix) with ESMTPSA id BE66E10000F; Wed, 9 Oct 2019 16:49:34 +0000 (UTC) From: Ilya Maximets To: netdev@vger.kernel.org Cc: bpf@vger.kernel.org, linux-kernel@vger.kernel.org, Alexei Starovoitov , Daniel Borkmann , "David S . Miller" , Jonathan Lemon , Andrii Nakryiko , Ilya Maximets Subject: [PATCH bpf v2] libbpf: fix passing uninitialized bytes to setsockopt Date: Wed, 9 Oct 2019 18:49:29 +0200 Message-Id: <20191009164929.17242-1-i.maximets@ovn.org> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 'struct xdp_umem_reg' has 4 bytes of padding at the end that makes valgrind complain about passing uninitialized stack memory to the syscall: Syscall param socketcall.setsockopt() points to uninitialised byte(s) at 0x4E7AB7E: setsockopt (in /usr/lib64/libc-2.29.so) by 0x4BDE035: xsk_umem__create@@LIBBPF_0.0.4 (xsk.c:172) Uninitialised value was created by a stack allocation at 0x4BDDEBA: xsk_umem__create@@LIBBPF_0.0.4 (xsk.c:140) Padding bytes appeared after introducing of a new 'flags' field. memset() is required to clear them. Fixes: 10d30e301732 ("libbpf: add flags to umem config") Signed-off-by: Ilya Maximets --- Version 2: * Struct initializer replaced with explicit memset(). [Andrii] tools/lib/bpf/xsk.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/lib/bpf/xsk.c b/tools/lib/bpf/xsk.c index a902838f9fcc..9d5348086203 100644 --- a/tools/lib/bpf/xsk.c +++ b/tools/lib/bpf/xsk.c @@ -163,6 +163,7 @@ int xsk_umem__create_v0_0_4(struct xsk_umem **umem_ptr, void *umem_area, umem->umem_area = umem_area; xsk_set_umem_config(&umem->config, usr_config); + memset(&mr, 0, sizeof(mr)); mr.addr = (uintptr_t)umem_area; mr.len = size; mr.chunk_size = umem->config.frame_size; -- 2.17.1