Received: by 2002:a25:d80c:0:0:0:0:0 with SMTP id p12csp11969ybg; Tue, 9 Jun 2020 14:29:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzrq2j5knJvrugNcXKgtEmoe3ug58F6Wp0iE74On0sSIwYUrs7Lg0y8LcpuCQx85zFkaqFu X-Received: by 2002:a17:906:39a:: with SMTP id b26mr393445eja.204.1591738166973; Tue, 09 Jun 2020 14:29:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591738166; cv=none; d=google.com; s=arc-20160816; b=VzP+AcDvBKo07o67DFg7vmsE8Wi2lPiBe5hJEvRGbm8BO7ac0D+odg4D0NWYyS8GWe CnxMl51DsyRMjmBqZ9eh9efb5qyPpGzO/p3NKCyX60rMHpHxupGdp7CJVdUouwv/ds6j p+YqbTmtzfFWsy1GXoLMf2o5ld41dM1QvcYWYwA3inOPkVBkrRR5dO4Ak/5sHyWY2ekR i85EIEY1NOXiuFXNuz6a8VvFuBAgsaGHbTuEE+VkS+UROPoIe66VoIISj2dlHtx7DGNZ fHvRH+FnMChNmjDFfdJp9h+nfrs4A17UTGaeYTHBOsfcBnhrp51O2SjIWQ8ujfy484Gq T/7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=Oh20Gu011TTYQA4lVRUxSMUTBW0G3IQUbkaHag5Vhb8=; b=a26131cVO1FggMPmMhGOwcTyTv8qXXgjTVm2MupE6HHYDGKODuwob716hkTLRENz0W h+1QdWc8GAE5SbP3HIHU1hpqwKKz3fnIzP4VFE/1/kOXGV9aCOZ84/wEpq1OhGpOVZ4v NIuJAUTQhel+goJHquFjMxsSsCyMaT13EBxpGg7srVYBZ5oUyKtb6AaTuSk9utdDcx6z i5j3xHKX6nrEIfIW7ImeK+23KBXmCqu/L4LNPSJxkArN1VCGAG+ddFWesh2ZSosamsj7 nxfCTDnmzPwlUmmWia+rBDal443+IYEu/4EdqyIwXGoWee2qxV7yS8POjSJlaz2b/7aX AxSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=n+hLPPcE; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bc22si11794580edb.368.2020.06.09.14.28.46; Tue, 09 Jun 2020 14:29:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-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=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b=n+hLPPcE; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728089AbgFIVZd (ORCPT + 99 others); Tue, 9 Jun 2020 17:25:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46564 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725894AbgFIVZc (ORCPT ); Tue, 9 Jun 2020 17:25:32 -0400 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9E858C05BD1E for ; Tue, 9 Jun 2020 14:25:32 -0700 (PDT) Received: by mail-lj1-x243.google.com with SMTP id e4so26972659ljn.4 for ; Tue, 09 Jun 2020 14:25:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Oh20Gu011TTYQA4lVRUxSMUTBW0G3IQUbkaHag5Vhb8=; b=n+hLPPcEPT7B66fK//yz8872j9i3ByxuvWDur5lklEMfIUmygLZFj115euAlY/q8Oc N2+i3ahGwz1XRVO/uajkBGoNgMaPoReIlfMqwtojTsv8Sgek37tH1LbMU+NUTUITi1+Z My/Fj8vnMYca1H7Sukx6uFCDuL7a54vRANt5nnpSGy5gbM+rWavZWaIgCUta5Rno8EWJ OlTtbcw+Gypld8HebNAhdw3KN5/yOYPpLc9NmuAIDSdZr2JelNxyeFNcppHAMvZEfP8l 6oPPONgI/GcZMW1POZIpLqxkSOAwCg3fXUMwLrR0fYnSu5jsSnaIw5DmSxV/fAwu9xvv D+Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Oh20Gu011TTYQA4lVRUxSMUTBW0G3IQUbkaHag5Vhb8=; b=E0oeOhAzMtcp2Vr8aj4GLrQyVPo7EAp5Er46LR0xpJaJrOB/JNrs2Z/fEVaRtMStDB ISEu2JikNcUgynMfgn2ZljPrWfcKsz8bOU57SLRR35iS0UhNNwkRh9EibMuDy6qKMJfa OnaWIrUYXLT9S0hJjVzl9+kxpajPMnWkpa5bMh2B3TPGfUHL15B9Ij6eQ/jiIA6Xm0CM 84PAdy4vLf8FkN8JfgkCsqdlo6aJ3Pr3IRrpE990Eu4RNeX4Ac/fNQDkAgAZ223gi5UC eqGYX9WkvC+zT2Y53v9w5aTulhpsuq30RlJL+pLUz0TwK1mPzJtDAPANjn4Hj5BHIk7+ HCcQ== X-Gm-Message-State: AOAM532bylyFv+kP3qgPotIgnISDYIHFIJpK/dcs8DIfqhSj1dyulgA3 SE5wyLlz6q5u5EpX5P/g7FxR+tUu0PVsa7CJ/hcWFw== X-Received: by 2002:a2e:7006:: with SMTP id l6mr113458ljc.453.1591737931057; Tue, 09 Jun 2020 14:25:31 -0700 (PDT) MIME-Version: 1.0 References: <20200608180241.BlueZ.v1.1.Ibf8331f6c835d53fe7ca978de962f93981573d9a@changeid> In-Reply-To: From: "Von Dentz, Luiz" Date: Tue, 9 Jun 2020 14:25:19 -0700 Message-ID: Subject: Re: [BlueZ PATCH v1] adapter: Fix the unref and reset of watch_client's members To: Miao-chen Chou Cc: Bluetooth Kernel Mailing List , Michael Sun , Alain Michaud , Yoni Shavit , Sonny Sasaka Content-Type: text/plain; charset="UTF-8" Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Hi, On Mon, Jun 8, 2020 at 6:11 PM Von Dentz, Luiz wrote: > > Hi Miao, > > On Mon, Jun 8, 2020 at 6:03 PM Miao-chen Chou wrote: >> >> This properly handles the unref of client->msg in >> stop_discovery_complete() and the reset of it. This also handles the unref >> of client->msg, the reset of client->watch and the reset of client->msg in >> start_discovery_complete(). >> >> The following test was performed: >> (1) Intentionally changed the MGMT status other than MGMT_STATUS_SUCCESS >> in stop_discovery_complete() and start_discovery_complete() and built >> bluetoothd. >> (2) In bluetoothctl console, issued scan on/scan off to invoke >> StartDiscovery and verified that new discovery requests can be processed. >> >> Reviewed-by: Alain Michaud >> Reviewed-by: Sonny Sasaka >> --- >> >> src/adapter.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/src/adapter.c b/src/adapter.c >> index 76acfea70..0857a3115 100644 >> --- a/src/adapter.c >> +++ b/src/adapter.c >> @@ -1652,6 +1652,9 @@ fail: >> reply = btd_error_busy(client->msg); >> g_dbus_send_message(dbus_conn, reply); >> g_dbus_remove_watch(dbus_conn, client->watch); > > > We shouldn't be removing the watch directly since the client may have registered filters so we let discovery_remove do it by calling discovery_free if necessary. > >> >> + client->watch = 0; >> + dbus_message_unref(client->msg); >> + client->msg = NULL; >> discovery_remove(client, false); >> return; >> } >> @@ -1926,6 +1929,8 @@ static void stop_discovery_complete(uint8_t status, uint16_t length, >> if (client->msg) { >> reply = btd_error_busy(client->msg); >> g_dbus_send_message(dbus_conn, reply); >> + dbus_message_unref(client->msg); >> + client->msg = NULL; >> } >> goto done; >> } >> -- >> 2.26.2 > > > Ive sent similar fixes upstream, let me attach them here just in case. Any comments on these changes, I would like to push them as soon as possible.