all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Lars Ingebrigtsen <larsi@gnus.org>
Cc: stakemorii@gmail.com, 24117@debbugs.gnu.org
Subject: bug#24117: 25.1; url-http-create-request: Multibyte text in HTTP request
Date: Wed, 10 Aug 2016 09:50:16 +0300	[thread overview]
Message-ID: <762be2e9-c82e-fa36-7d3f-0755e3bcdbaa@yandex.ru> (raw)
In-Reply-To: <m3vazap9h3.fsf@gnus.org>

On 08/09/2016 12:39 PM, Lars Ingebrigtsen wrote:

> I don't know.  I don't think `url-encode-url' has ever really worked in
> any sensible way in the presence of non-ASCII.

My point is, you're saying that url-generic-parse-url should accept (and 
handle properly) multibyte URLs. But url-encode-url still encodes the 
URL string before passing it to url-generic-parse-url.

> It's debatable what that function should return in the presence of
> non-ASCII domain names, but it's a debatable function all around.

The way the version in master works makes quite a bit of sense to me.

> I didn't understand the original bug report and there was no simple
> recipe to reproduce the bug.  Why changing url-generic-parse-url was
> proposed as a solution is even less unclear.  Perhaps you could write a
> test case and summarise what you think the problem is?

Please try this:

(with-current-buffer
     (let ((url-request-data (encode-coding-string "фыва" 'utf-8)))
       (url-retrieve-synchronously "http://posttestserver.com/post.php"))
   (buffer-string))

You'll get the "Multibyte text in HTTP request" error, which was added 
in a98aa02a5dbf079f7b4f3be5487a2f2b741d103d, to validate request data 
and make sure that users don't have to spend too much time investigating 
problems in their own code like bug#23750.

But the added validation relied on the assumption that the situation 
with multibyte/unibyte strings that url-http-create-request acts on is 
somewhat sane, which is not true, as the current discussion has 
demonstrated.

So we either need to straighten it up, or change the validation logic. 
If everything fails, of course, we can revert the aforementioned commit, 
but that would be bad for users.

>> On master, the domain part, which is untouched by url-encode-url, is
>> converted to an ASCII unibyte string with puny-encode-domain, inside
>> url-http-create-request. But real-fname remains a multibyte string,
>> triggering the problem anyway.
>
> The domain is encoded according to IDNA, which is an ASCII string, yes.
> (Whether the function returns a unibyte string or not I can't recall.)

It does.





  reply	other threads:[~2016-08-10  6:50 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-31  8:26 bug#24117: 25.1; url-http-create-request: Multibyte text in HTTP request Sho Takemori
2016-07-31 14:31 ` Eli Zaretskii
2016-07-31 23:21   ` Sho Takemori
2016-08-01 13:17     ` Eli Zaretskii
2016-08-02  0:52       ` Dmitry Gutov
2016-08-02 15:25         ` Eli Zaretskii
2016-08-03  2:39           ` Dmitry Gutov
2016-08-04 17:02             ` Eli Zaretskii
2016-08-08  1:56               ` Dmitry Gutov
2016-08-08 13:32                 ` Ted Zlatanov
2016-08-08 23:48                   ` Katsumi Yamaoka
2016-08-08 15:33                 ` Eli Zaretskii
2016-08-08 15:52                 ` Lars Ingebrigtsen
2016-08-08 15:54                 ` Lars Ingebrigtsen
2016-08-08 16:14                   ` Eli Zaretskii
2016-08-08 16:18                     ` Lars Ingebrigtsen
2016-08-08 16:33                       ` Eli Zaretskii
2016-08-08 17:11                         ` Andreas Schwab
2016-08-08 17:30                           ` Eli Zaretskii
2016-08-08 19:16                             ` Andreas Schwab
2016-08-09  2:32                               ` Eli Zaretskii
2016-08-09  8:05                                 ` Andreas Schwab
2016-08-09 14:50                                   ` Eli Zaretskii
2016-08-10  7:12                                     ` Dmitry Gutov
2016-08-10 14:35                                       ` Eli Zaretskii
2016-08-11  2:52                                         ` Dmitry Gutov
2016-08-11  8:53                                           ` Ted Zlatanov
2016-08-11 12:31                                             ` Dmitry Gutov
2016-08-11 12:57                                               ` Ted Zlatanov
2016-08-11 13:00                                                 ` Lars Ingebrigtsen
2016-08-11 13:18                                                   ` Ted Zlatanov
2017-05-08 13:36                                                 ` Dmitry Gutov
2017-05-08 20:57                                                   ` Lars Ingebrigtsen
2017-05-10  0:40                                                     ` Dmitry Gutov
2016-08-11 11:05                                           ` Lars Ingebrigtsen
2016-08-11 14:47                                           ` Eli Zaretskii
2016-08-11 14:59                                             ` Dmitry Gutov
2016-08-11 15:31                                               ` Eli Zaretskii
2016-08-11 18:07                                                 ` Dmitry Gutov
2016-08-11 19:47                                                   ` Eli Zaretskii
2016-08-12 21:44                                                   ` John Wiegley
2016-08-13  0:30                                           ` Sho Takemori
2016-08-13  7:02                                             ` Eli Zaretskii
2016-08-13  7:31                                               ` Sho Takemori
2016-08-13  8:31                                                 ` Eli Zaretskii
2016-08-13 13:02                                                   ` Sho Takemori
2016-08-13 13:11                                                     ` Eli Zaretskii
2016-08-13 15:32                                                   ` Dmitry Gutov
2016-08-13 15:56                                                     ` Eli Zaretskii
2016-08-08 16:21                     ` Lars Ingebrigtsen
2016-08-08 16:33                       ` Eli Zaretskii
2016-08-08 16:58                         ` Lars Ingebrigtsen
2016-08-08 17:11                           ` Eli Zaretskii
2016-08-08 19:46                   ` Dmitry Gutov
2016-08-08 20:19                     ` Lars Ingebrigtsen
2016-08-08 20:35                       ` Dmitry Gutov
2016-08-08 20:36                         ` Lars Ingebrigtsen
2016-08-09  2:13                           ` Dmitry Gutov
2016-08-09  9:39                             ` Lars Ingebrigtsen
2016-08-10  6:50                               ` Dmitry Gutov [this message]
2016-08-11  1:31                                 ` Dmitry Gutov
2016-08-02  3:26       ` Sho Takemori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=762be2e9-c82e-fa36-7d3f-0755e3bcdbaa@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=24117@debbugs.gnu.org \
    --cc=larsi@gnus.org \
    --cc=stakemorii@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.