GNU bug report logs - #51133
[PATCH 1/1] Tolerate http response line without reason phrase

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: guile; Reported by: Alexey Abramov <levenson@HIDDEN>; Keywords: patch; dated Mon, 11 Oct 2021 07:05:01 UTC; Maintainer for guile is bug-guile@HIDDEN.

Message received at 51133 <at> debbugs.gnu.org:


Received: (at 51133) by debbugs.gnu.org; 12 Oct 2021 08:02:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 12 04:02:12 2021
Received: from localhost ([127.0.0.1]:33378 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1maCjk-0004WA-Jp
	for submit <at> debbugs.gnu.org; Tue, 12 Oct 2021 04:02:12 -0400
Received: from mx1.riseup.net ([198.252.153.129]:40652)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jakub-w@HIDDEN>) id 1maCjj-0004Vx-HR
 for 51133 <at> debbugs.gnu.org; Tue, 12 Oct 2021 04:02:11 -0400
Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "mail.riseup.net", Issuer "R3" (not verified))
 by mx1.riseup.net (Postfix) with ESMTPS id 4HT7Rf0TSxzF4qg;
 Tue, 12 Oct 2021 01:02:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak;
 t=1634025726; bh=s8zkjk0AO7eaMmPYhadGYLrdqJMODC8xoyhXPXP6eBI=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=RomA2obR3YhPrjafylbNUwkfbTYpMMKMxihPbtzNCICnXv4YUPRKbHg6F16qK4YHc
 yKEoJ4yiiQjrjdRQzpqR38E3N2pj3YYLcz/83AQBZkjUc9v4wqSgCO3vG/bmNsfRpM
 UWtnlXYM58n99iDMfprxb7STVmMnLqxXf2+Y34Pw=
X-Riseup-User-ID: 9009DAFA6C0F5E1A62075D39C4858D5F3751B8E658D2C49A0106135606A3D0B2
Received: from [127.0.0.1] (localhost [127.0.0.1])
 by fews1.riseup.net (Postfix) with ESMTPSA id 4HT7Rc61T8z5wDQ;
 Tue, 12 Oct 2021 01:02:04 -0700 (PDT)
From: jakub-w@HIDDEN
To: bug-guile@HIDDEN
Subject: Re: bug#51133: [PATCH 1/1] Tolerate http response line without
 reason phrase
References: <20211011070355.20408-1-levenson@HIDDEN>
Date: Tue, 12 Oct 2021 10:01:03 +0200
In-Reply-To: <20211011070355.20408-1-levenson@HIDDEN> (Alexey Abramov via's
 message of "Mon, 11 Oct 2021 09:03:55 +0200")
Message-ID: <87h7dmhdts.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 51133
Cc: 51133 <at> debbugs.gnu.org, Alexey Abramov <levenson@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

I don't think the reason phrase is optional, even though it can be just
a whitespace.
Even if I'm not mistaken, however, I don't see the reason for Guile not
to be able to parse the status line without a space at the end.

Aside from that consider a string "HTTP/1.1 ", which should be a bad
response because the status code should definitely be obligatory,
however it passes through the (and d0 d1) check after applying this
patch.




Information forwarded to bug-guile@HIDDEN:
bug#51133; Package guile. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 12 Oct 2021 08:02:15 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Oct 12 04:02:15 2021
Received: from localhost ([127.0.0.1]:33381 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1maCjm-0004WP-Ps
	for submit <at> debbugs.gnu.org; Tue, 12 Oct 2021 04:02:14 -0400
Received: from lists.gnu.org ([209.51.188.17]:40276)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <jakub-w@HIDDEN>) id 1maCjk-0004WC-PM
 for submit <at> debbugs.gnu.org; Tue, 12 Oct 2021 04:02:13 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:49622)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jakub-w@HIDDEN>)
 id 1maCjk-0007jL-Ex
 for bug-guile@HIDDEN; Tue, 12 Oct 2021 04:02:12 -0400
Received: from mx1.riseup.net ([198.252.153.129]:41162)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jakub-w@HIDDEN>)
 id 1maCji-0003ow-8e
 for bug-guile@HIDDEN; Tue, 12 Oct 2021 04:02:11 -0400
Received: from fews1.riseup.net (fews1-pn.riseup.net [10.0.1.83])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256)
 (Client CN "mail.riseup.net", Issuer "R3" (not verified))
 by mx1.riseup.net (Postfix) with ESMTPS id 4HT7Rf0TSxzF4qg;
 Tue, 12 Oct 2021 01:02:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=riseup.net; s=squak;
 t=1634025726; bh=s8zkjk0AO7eaMmPYhadGYLrdqJMODC8xoyhXPXP6eBI=;
 h=From:To:Cc:Subject:References:Date:In-Reply-To:From;
 b=RomA2obR3YhPrjafylbNUwkfbTYpMMKMxihPbtzNCICnXv4YUPRKbHg6F16qK4YHc
 yKEoJ4yiiQjrjdRQzpqR38E3N2pj3YYLcz/83AQBZkjUc9v4wqSgCO3vG/bmNsfRpM
 UWtnlXYM58n99iDMfprxb7STVmMnLqxXf2+Y34Pw=
X-Riseup-User-ID: 9009DAFA6C0F5E1A62075D39C4858D5F3751B8E658D2C49A0106135606A3D0B2
Received: from [127.0.0.1] (localhost [127.0.0.1])
 by fews1.riseup.net (Postfix) with ESMTPSA id 4HT7Rc61T8z5wDQ;
 Tue, 12 Oct 2021 01:02:04 -0700 (PDT)
From: jakub-w@HIDDEN
To: bug-guile@HIDDEN
Subject: Re: bug#51133: [PATCH 1/1] Tolerate http response line without
 reason phrase
References: <20211011070355.20408-1-levenson@HIDDEN>
Date: Tue, 12 Oct 2021 10:01:03 +0200
In-Reply-To: <20211011070355.20408-1-levenson@HIDDEN> (Alexey Abramov via's
 message of "Mon, 11 Oct 2021 09:03:55 +0200")
Message-ID: <87h7dmhdts.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=198.252.153.129; envelope-from=jakub-w@HIDDEN;
 helo=mx1.riseup.net
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
Cc: 51133 <at> debbugs.gnu.org, Alexey Abramov <levenson@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

I don't think the reason phrase is optional, even though it can be just
a whitespace.
Even if I'm not mistaken, however, I don't see the reason for Guile not
to be able to parse the status line without a space at the end.

Aside from that consider a string "HTTP/1.1 ", which should be a bad
response because the status code should definitely be obligatory,
however it passes through the (and d0 d1) check after applying this
patch.




Information forwarded to bug-guile@HIDDEN:
bug#51133; Package guile. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 11 Oct 2021 07:04:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Oct 11 03:04:29 2021
Received: from localhost ([127.0.0.1]:56286 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mZpMK-0003kF-SW
	for submit <at> debbugs.gnu.org; Mon, 11 Oct 2021 03:04:29 -0400
Received: from lists.gnu.org ([209.51.188.17]:35324)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1mZpMH-0003k5-1a
 for submit <at> debbugs.gnu.org; Mon, 11 Oct 2021 03:04:27 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:35588)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <levenson@HIDDEN>) id 1mZpMF-00080h-R4
 for bug-guile@HIDDEN; Mon, 11 Oct 2021 03:04:24 -0400
Received: from mail.mmer.org ([178.22.65.174]:48654)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <levenson@HIDDEN>) id 1mZpME-00050Q-2x
 for bug-guile@HIDDEN; Mon, 11 Oct 2021 03:04:23 -0400
Received: from mail.mmer.org (localhost [127.0.0.1])
 by mail.mmer.org (OpenSMTPD) with ESMTP id 29d24c22
 for <bug-guile@HIDDEN>; Mon, 11 Oct 2021 07:04:11 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=mmer.org; h=from:to
 :subject:date:message-id:mime-version:content-transfer-encoding;
 s=dkim; bh=g55cgYrk7ZeTKFn4b5yQrg7N3luRB9A6Tn9wpuS1zk4=; b=R+wP
 oUEA9svnMFg1U/lm2V8mPDp6LWrgO1TlPfw1p6XIhayHMnL58tFwHpxZSrGUZHl+
 v6krf8hYtU7qNOR3bSzg/GiLxl3/HCNw63o7qHetwXWCJRF1TaKvlnla+8wqylMW
 cRgq8U09fwlPhPcIbAKi1jEPZy39/hYk0shpI70=
Received: from delta (j74182.upc-j.chello.nl [24.132.74.182])
 by mail.mmer.org (OpenSMTPD) with ESMTPSA id 4d492ff5
 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO) for <bug-guile@HIDDEN>;
 Mon, 11 Oct 2021 07:04:10 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
To: bug-guile@HIDDEN
Subject: [PATCH 1/1] Tolerate http response line without reason phrase
Date: Mon, 11 Oct 2021 09:03:55 +0200
Message-Id: <20211011070355.20408-1-levenson@HIDDEN>
X-Mailer: git-send-email 2.31.1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=178.22.65.174; envelope-from=levenson@HIDDEN;
 helo=mail.mmer.org
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

* module/web/http.scm (read-response-line): Use the end of the string,
in case a line doesn't have char-set:whitespace at the end.
* test-suite/tests/web-http.test ("read-response-line"): Add test.
---
 module/web/http.scm            | 6 ++++--
 test-suite/tests/web-http.test | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/module/web/http.scm b/module/web/http.scm
index 4276e1744..7443bd6a4 100644
--- a/module/web/http.scm
+++ b/module/web/http.scm
@@ -1187,8 +1187,10 @@ values: the HTTP version, the response code, and the (possibly empty)
 \"reason phrase\"."
   (let* ((line (read-header-line port))
          (d0 (string-index line char-set:whitespace)) ; "delimiter zero"
-         (d1 (and d0 (string-index line char-set:whitespace
-                                   (skip-whitespace line d0)))))
+         (d1 (and d0 (or (string-index line char-set:whitespace
+                                       (skip-whitespace line d0))
+                         ;; tolerate responses with empty "reason phrase"
+                         (string-length line)))))
     (unless (and d0 d1)
       (bad-response "Bad Response-Line: ~s" line))
     (values (parse-http-version line 0 d0)
diff --git a/test-suite/tests/web-http.test b/test-suite/tests/web-http.test
index 63377349c..6d8cd1642 100644
--- a/test-suite/tests/web-http.test
+++ b/test-suite/tests/web-http.test
@@ -216,6 +216,8 @@
 
   ;; Empty reason phrases are valid; see <http://bugs.gnu.org/22273>.
   (pass-if-read-response-line "HTTP/1.1 302 "
+                              (1 . 1) 302 "")
+  (pass-if-read-response-line "HTTP/1.1 302"
                               (1 . 1) 302 ""))
 
 (with-test-prefix "write-response-line"
-- 
2.31.1





Acknowledgement sent to Alexey Abramov <levenson@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-guile@HIDDEN. Full text available.
Report forwarded to bug-guile@HIDDEN:
bug#51133; Package guile. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Tue, 12 Oct 2021 08:15:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.