Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp2465821ybl; Thu, 19 Dec 2019 14:14:35 -0800 (PST) X-Google-Smtp-Source: APXvYqysI2PuFNtfhTLwAmU1Jn2VH7DtqyjapleKJmwtRs2Tq+K3IT3eDrUItdXlLhZj5ugaaBdE X-Received: by 2002:aca:3c83:: with SMTP id j125mr3275618oia.163.1576793675841; Thu, 19 Dec 2019 14:14:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1576793675; cv=none; d=google.com; s=arc-20160816; b=m6hXPvaubYYC7dI74PcF7yZs0qimUmqnZzNVL9WEfpPAoHo1ociTfER46U80PL1j/z YXh5e7ErfvuLes5GPEcJ8qUfAGvrQZKlM2sHVF/dt0aK2OIzlT5jHCh6N6Y9mxyaJzuG HPgjwKLDgOPY22gBbZTzY/JnfCoO7euaKKdejvERtv48GSxLPcU75Fhm02nEPSQUpy25 yrVvSGKakz1IRJ6sMgA99xRGfGYt6oCB6E2Sug9cN4awUELfxXnwXIQig07U0dbbH9Ac E5IB3qlDjAl406X485OaTR+6ouCvwVcuIDplkStZTRBKmBcDZ8ntj6ODbEvanCFwVOq/ K5kg== 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=uYlBA8c06y1TAyvR/8bqnGyH1KBkLIKGqbAByEVlB7w=; b=n+ZkBhJii56xnpCLvLnj6T4ieGTQ+ijoulXOqsV2hPrJX3/MFU1uq44vghQGu8lGUp uvE+NTDcCKoFAWc+AYyIwySK21M6h2bTIvKCKyEV7zBUgNBoAPPX6hcTc7HDzSkxXRi5 glu8G1Oa6PQ0elnn83v6vOyMWJqwfcA/KTreGTMfv/LXdgS1HAhlph0Y3pPZHE7yuBfK CbXo8KShFcntj98qklc1scWr+eeQK3aIja98dPmk65MrQ1FdAMcw28bJZpq/VbM67Ma3 F73sboQesKYyLzAOY0eju042c/3vLUTKtyng9cxRw34/kiFlIZ81K+fS93XRpA7yWWCW R9xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="q8/VJTqX"; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b133si3775798oif.244.2019.12.19.14.14.10; Thu, 19 Dec 2019 14:14:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="q8/VJTqX"; spf=pass (google.com: best guess record for domain of linux-bluetooth-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726880AbfLSWMt (ORCPT + 99 others); Thu, 19 Dec 2019 17:12:49 -0500 Received: from mail-ot1-f50.google.com ([209.85.210.50]:36498 "EHLO mail-ot1-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726866AbfLSWMt (ORCPT ); Thu, 19 Dec 2019 17:12:49 -0500 Received: by mail-ot1-f50.google.com with SMTP id w1so9104128otg.3 for ; Thu, 19 Dec 2019 14:12:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uYlBA8c06y1TAyvR/8bqnGyH1KBkLIKGqbAByEVlB7w=; b=q8/VJTqXDh7splLFpxnzQd5nzETiLmYcKVMcPzImi3Xzz8/9gCd0usFCi9l1fugIx8 F5w77G1sNOKA2QAI/98YEKQ7sxbtXCba1kqpU0UYekTJSgerjyEPBOxyWu4BBYQR2WOA wnygP25zRg4dRIcMynRoG30AeZ6OHhpJGSDO3MYTZ6DJuG323AVrDQaoDNN+Uw3eYUv8 w/Dbhdl6YJ0W7SA5uVB52Y6zT1/Yru2I6QPnrCL6F/8LgPH1cYbAl1Xrvfm+hagTtQZe DtS+BmpeAYsSTzYyaCzv7c3jSRvdIM8iRu9pihvDUfmKKHDaAv0EpBmeRV/WpXItyS7m N1xQ== 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=uYlBA8c06y1TAyvR/8bqnGyH1KBkLIKGqbAByEVlB7w=; b=Ng7v6Fetz+Sq+KarsVhuqwbqZIE0J6y9skLS2DkOpR+6E73SO20L4cp8LPKcOGcKah YZsHj0flMSrUendudetymMUKAeTYBmcgkEqrQzg/2V0L/LKMF2gF9cCiPS4PPd3XyMrk F6nYLN4Rk4WxrYVjmMto7hcziaLJ1kjmC9iWBNvmtje9fVoLCvYqbde3RbzLx9lStLjZ hHH/Df+qqIuUFIXZyNNT14JXjlk9QgXVF39wYjDrcnU+JoT0MdbohK0uWePEPLDsWuvA N0SD30nbyNzubWhOJTdlT7dI2YbO/ckqEbhg9bQxSf2DFHbvmTnEL6GFyTa/IrG1UfI7 DSxw== X-Gm-Message-State: APjAAAVh4u0eOIGobovnId5BjB6/tLeKQNT3m7CF1AlwV98VXZsIsljv 9k1mjUonz1O/J4KM3F/wIZgUMeoli7R1jJ0AJ2pZbdmn X-Received: by 2002:a05:6830:605:: with SMTP id w5mr7413005oti.79.1576793568584; Thu, 19 Dec 2019 14:12:48 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Luiz Augusto von Dentz Date: Thu, 19 Dec 2019 14:12:36 -0800 Message-ID: Subject: Re: GATT server does not handle "Invalid Offset" and "Invalid Attribute Value Length" errors properly To: Konstantin Forostyan Cc: "linux-bluetooth@vger.kernel.org" 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 Konstantin, On Thu, Dec 19, 2019 at 12:36 AM Konstantin Forostyan wrote: > > Hi, > > According to Bluetooth specs (BLUETOOTH CORE SPECIFICATION Version 5.1 > | Vol 3, Part F 3.4.6.1 Prepare Write Request): > > "... The Attribute Value validation is done when an Execute Write > Request is received. Hence, any Invalid Offset or Invalid Attribute > Value Length errors are generated when an Execute Write Request is > received. ..." > > In contrary to the specs, 'bluetoothd' is sending error response during > prepare write. The following patch changes this behaviour: > > > --- a/src/shared/gatt-server.c 2018-06-01 10:37:36.000000000 +0200 > +++ b/src/shared/gatt-server.c 2019-12-13 12:25:22.000000000 +0100 > @@ -1223,7 +1223,17 @@ > > handle = get_le16(pwcd->pdu); > > - if (err) { > + if ((0 != err) && (BT_ATT_ERROR_INVALID_OFFSET != err) > + && (BT_ATT_ERROR_INVALID_ATTRIBUTE_VALUE_LEN != err)) { > bt_att_send_error_rsp(pwcd->server->att, > BT_ATT_OP_PREP_WRITE_REQ, > handle, err); > free(pwcd->pdu); Yep, I remember this one actually since we did fix something similar in Zephyr we would need to move the error checking to execute, btw is this with bluetoothd or gatt-server tool, the later is probably not recommended for qualification as it is more of a validation tool it may not be feature complete. -- Luiz Augusto von Dentz