]> git.ipfire.org Git - thirdparty/elfutils.git/commit
debuginfod: PR28034 - client-side %-escape url characters
authorNoah Sanci <nsanci@redhat.com>
Fri, 16 Jul 2021 19:16:20 +0000 (15:16 -0400)
committerMark Wielaard <mark@klomp.org>
Thu, 22 Jul 2021 12:10:24 +0000 (14:10 +0200)
commit9ab0c139eebf4ba40ac721224a673e4b66d29cd9
tree6c77b84cf0979d04d52b0d02d5ffe54c388173ae
parent3709516ee0bdc38f736eaf6cee440c85bf6059dd
debuginfod: PR28034 - client-side %-escape url characters

When requesting some source files, some URL-inconvenient chars
sometimes pop up.  Example from f33 libstdc++:
/buildid/44d8485cb75512c2ca5c8f70afbd475cae30af4f/source/usr/src/debug/
gcc-10.3.1-1.fc33.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/
libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/
condition_variable.cc
As this URL is passed into debuginfod's handler_cb, it appears that the
+ signs are helpfully unescaped to spaces by libmicrohttpd, which
'course breaks everything.
In order to ensure the server properly parses urls such as this one,
%-escape characters on the client side so that the correct url
is preserved and properly processed on the server side.

https://sourceware.org/bugzilla/show_bug.cgi?id=28034

Signed-off-by: Noah Sanci <nsanci@redhat.com>
debuginfod/ChangeLog
debuginfod/debuginfod-client.c
doc/debuginfod.8
tests/ChangeLog
tests/run-debuginfod-find.sh