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.
bug-guile@HIDDEN
:bug#51133
; Package guile
.
Full text available.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.
bug-guile@HIDDEN
:bug#51133
; Package guile
.
Full text available.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
Alexey Abramov <levenson@HIDDEN>
:bug-guile@HIDDEN
.
Full text available.bug-guile@HIDDEN
:bug#51133
; Package guile
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.