Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id A6DCF1200C7
 for <quic-issues@ietfa.amsl.com>; Thu, 11 Jul 2019 17:39:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.595
X-Spam-Level: 
X-Spam-Status: No, score=-6.595 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.001,
 HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1,
 RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001]
 autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=github.com
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 9h9FNZubNtHY for <quic-issues@ietfa.amsl.com>;
 Thu, 11 Jul 2019 17:39:54 -0700 (PDT)
Received: from out-22.smtp.github.com (out-22.smtp.github.com [192.30.252.205])
 (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 8238E120073
 for <quic-issues@ietf.org>; Thu, 11 Jul 2019 17:39:54 -0700 (PDT)
Date: Thu, 11 Jul 2019 17:39:53 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com;
 s=pf2014; t=1562891993;
 bh=nbr6ajitB/SjKyscSxDZr45BO20xp4M5mkiiNBh38+U=;
 h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post:
 List-Unsubscribe:From;
 b=Krq1adXLFtjr2DjA8jjUtgYF1/eiWd6IQzO4c0FozMIIJ1IeTF1JEyrd9kVDH88YV
 E9xSRlFWJymOH0skH2+j5Oj1+HnRTRm9XNQ0cf+mD29HDt9/Ucw+7pn1oAeHH/wykc
 GpARPaNN4Ow92tncFeKJk7KpFrA8hXrXsuBi9cgc=
From: =?UTF-8?B?QmVuY2UgQsOpa3k=?= <notifications@github.com>
Reply-To: quicwg/base-drafts
 <reply+AFTOJK2OWULYLVJZ5ETKH553GUEVTEVBNHHBXWDFAA@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2892@github.com>
Subject: [quicwg/base-drafts] QPACK Required Insert Count decoding pseudocode
 does not enforce that encoding is valid (#2892)
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_5d27d6d962632_76a93f90a0acd968208124c";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: bencebeky
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/v0gpCyDZvKUkqVrl-CEKz11_Yyc>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG
 <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>,
 <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>,
 <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 12 Jul 2019 00:39:57 -0000


----==_mimepart_5d27d6d962632_76a93f90a0acd968208124c
Content-Type: text/plain;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

Consider the following example:
MaxEntries = 8
TotalNumberOfInserts = 4
EncInsertCount = 1

Applying the decoder pseudocode yields ReqInsertCount = 0 without signalling an error.  However, the encoder should have encoded that as EncInsertCount = 0, therefore the decoder should signal an error according to the text: "If the decoder encounters a value of EncodedInsertCount that could not have been produced by a conformant encoder, it MUST treat this as a connection error of type HTTP_QPACK_DECOMPRESSION_FAILED."

The text is considered normative and the pseudocode is not.  To help decoder implementations be conformant, the pseudocode should be updated to signal an error in this case.  Adding the following two lines would be a correct solution:

    if ReqInsertCount == 0:
      Error

However, this introduces an extra branch.  It would be nice to find a more elegant decoding algorithm.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2892
----==_mimepart_5d27d6d962632_76a93f90a0acd968208124c
Content-Type: text/html;
 charset=UTF-8
Content-Transfer-Encoding: 7bit

<p>Consider the following example:<br>
MaxEntries = 8<br>
TotalNumberOfInserts = 4<br>
EncInsertCount = 1</p>
<p>Applying the decoder pseudocode yields ReqInsertCount = 0 without signalling an error.  However, the encoder should have encoded that as EncInsertCount = 0, therefore the decoder should signal an error according to the text: "If the decoder encounters a value of EncodedInsertCount that could not have been produced by a conformant encoder, it MUST treat this as a connection error of type HTTP_QPACK_DECOMPRESSION_FAILED."</p>
<p>The text is considered normative and the pseudocode is not.  To help decoder implementations be conformant, the pseudocode should be updated to signal an error in this case.  Adding the following two lines would be a correct solution:</p>
<pre><code>if ReqInsertCount == 0:
  Error
</code></pre>
<p>However, this introduces an extra branch.  It would be nice to find a more elegant decoding algorithm.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/quicwg/base-drafts/issues/2892?email_source=notifications&amp;email_token=AFTOJK7HDT27ONU7527M6XTP67HFTA5CNFSM4IB3ZMTKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G6YMUAA">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AFTOJK3AKPF7DJCB4GQWTALP67HFTANCNFSM4IB3ZMTA">mute the thread</a>.<img src="https://github.com/notifications/beacon/AFTOJK74FV2MQ4UDYXWAFQLP67HFTA5CNFSM4IB3ZMTKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G6YMUAA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/quicwg/base-drafts/issues/2892?email_source=notifications\u0026email_token=AFTOJK7HDT27ONU7527M6XTP67HFTA5CNFSM4IB3ZMTKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G6YMUAA",
"url": "https://github.com/quicwg/base-drafts/issues/2892?email_source=notifications\u0026email_token=AFTOJK7HDT27ONU7527M6XTP67HFTA5CNFSM4IB3ZMTKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4G6YMUAA",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>
----==_mimepart_5d27d6d962632_76a93f90a0acd968208124c--

