Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3320468pxf; Mon, 15 Mar 2021 07:05:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy0yJnPLZ7tNCvWhO2ehWQ/aiiRLkVQFCBU5f1JQ+AncNedTdsFNEdVldD3RCbr5Y2PEv+Y X-Received: by 2002:a17:906:73cd:: with SMTP id n13mr23278498ejl.535.1615817131151; Mon, 15 Mar 2021 07:05:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615817131; cv=none; d=google.com; s=arc-20160816; b=WErySuVvKv0TEHAcDts737ZHx0XdqlrRP/qzDXgPtkbO4fy9wuXHXZFFNc/8BiAqKu uObbAiGsLsVpn5IpuQEnLlMWvqi1mFwGIsn/cF2lPGus1Vv7HPMH/wuiK+EfnIhh69tz s0Re08WnbHC6ebvL1Z6mSLRXf+D33NBEqzfdOOSb/FLCOBm213MT5aCbuCnMU0Les8Zt G/sJzgRiXYzxHU7p46yGw3vSOUdU0/8bK2efDbfZo7aU9F0PiwfpJ7Kz10gJzffR/xYf +nJcGdX+O2HAswLIShRFtO+l0dIpzIjw9kAbYrBj6+Q4H8tbG+jO/ABATcx6Te7p2Xzy C6Sw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=fGGrCYzXMMAp6ZRKQu7GKVek0l7Qvd6ArzB7OICu9a4=; b=YthLrDz0afN0UxUdguSdgBuhHLTvihEKI7o4xg5jYIdJj+9kGvprvr9sglBXuR7llM SRTxOKi/jwSyqc9uwqu/HA9IveaSsr+AgjdIOn3430UPHVS8/Ndl507zPGDrPglP1/Pr nPXDqYU7W+SDU3L3KNsW88RxXMVEK39EkWSs0evd6jsH+IwNq97XUFjrNtkCo9C10w2Q QgZGHeNFcKMG1JgVSsNSMTrHnWZzYO6/iUovNCeV5iDTXte0IuMbtySx/XINSWrwvKfM 7fc01PHG8g3/kZhi3/xvEU9qnd0dhU8xcvsP7IL97gJ7VkjoldLZQro67ThI25uLJeFv 3kvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=rtxn1Fti; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id i6si10659092ejz.383.2021.03.15.07.05.08; Mon, 15 Mar 2021 07:05:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=rtxn1Fti; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232532AbhCOOEA (ORCPT + 99 others); Mon, 15 Mar 2021 10:04:00 -0400 Received: from mail.kernel.org ([198.145.29.99]:34306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231895AbhCON5R (ORCPT ); Mon, 15 Mar 2021 09:57:17 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id D536364F01; Mon, 15 Mar 2021 13:57:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615816637; bh=Ov+vMxu7B3lb5UN/RgPNTqrMU4kdSUd3pJNbWAZnNKs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rtxn1FtisN/MyRqtczJR4grE2Y0f/do0ridsOlBIoy9B3buAeNOiIo8dDTdzmXHPb BGesNQaUWJOOuLBwVYk22FV3sHtLG2py3oMuqFG/u0fZYRWKRSaPgUprosASl6I4Kc Utavif/8UEZbOee8x6R/cu0MPwgvIWnd59K1wHvc= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Maciej Fijalkowski , Daniel Borkmann , =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= Subject: [PATCH 5.10 026/290] libbpf: Clear map_info before each bpf_obj_get_info_by_fd Date: Mon, 15 Mar 2021 14:51:59 +0100 Message-Id: <20210315135542.817579598@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135541.921894249@linuxfoundation.org> References: <20210315135541.921894249@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Greg Kroah-Hartman From: Maciej Fijalkowski commit 2b2aedabc44e9660f90ccf7ba1ca2706d75f411f upstream. xsk_lookup_bpf_maps, based on prog_fd, looks whether current prog has a reference to XSKMAP. BPF prog can include insns that work on various BPF maps and this is covered by iterating through map_ids. The bpf_map_info that is passed to bpf_obj_get_info_by_fd for filling needs to be cleared at each iteration, so that it doesn't contain any outdated fields and that is currently missing in the function of interest. To fix that, zero-init map_info via memset before each bpf_obj_get_info_by_fd call. Also, since the area of this code is touched, in general strcmp is considered harmful, so let's convert it to strncmp and provide the size of the array name for current map_info. While at it, do s/continue/break/ once we have found the xsks_map to terminate the search. Fixes: 5750902a6e9b ("libbpf: proper XSKMAP cleanup") Signed-off-by: Maciej Fijalkowski Signed-off-by: Daniel Borkmann Acked-by: Björn Töpel Link: https://lore.kernel.org/bpf/20210303185636.18070-4-maciej.fijalkowski@intel.com Signed-off-by: Greg Kroah-Hartman --- tools/lib/bpf/xsk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/tools/lib/bpf/xsk.c +++ b/tools/lib/bpf/xsk.c @@ -535,15 +535,16 @@ static int xsk_lookup_bpf_maps(struct xs if (fd < 0) continue; + memset(&map_info, 0, map_len); err = bpf_obj_get_info_by_fd(fd, &map_info, &map_len); if (err) { close(fd); continue; } - if (!strcmp(map_info.name, "xsks_map")) { + if (!strncmp(map_info.name, "xsks_map", sizeof(map_info.name))) { ctx->xsks_map_fd = fd; - continue; + break; } close(fd);