GNU bug report logs -
#30794
Cannot produce backslash through hexadecimal - sed (GNU sed) 4.2.2
Previous Next
Reported by: 0xddaa <at> gmail.com
Date: Tue, 13 Mar 2018 15:26:01 UTC
Severity: normal
Done: Jim Meyering <jim <at> meyering.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#30794: Cannot produce backslash through hexadecimal - sed (GNU sed) 4.2.2
which was filed against the sed package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 30794 <at> debbugs.gnu.org.
--
30794: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30794
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
On Wed, Mar 14, 2018 at 3:43 PM, Assaf Gordon <assafgordon <at> gmail.com> wrote:
> Replying to myself:
>
> On Wed, Mar 14, 2018 at 04:34:18PM -0600, Assaf Gordon wrote:
>> > [...]
>> > sed-1.18 : x5c1
>> > sed-2.05 : x5c1
>> > sed-3.01 : x5c1
>> > sed-3.02 : x5c1
>> > [...]
>
> I checked the NEWS file,
> and found that backslash sequences (e.g. \n \t \xNN \dNNN \oNNN)
> were added in version 3.02.80 (which I don't think is common and
> we don't have the source code).
>
> I changed the NEWS accordingly (attached updated patch).
>
> OK to push?
Sure. Re the "bug present since..." issue, my intent was to convey
that \x5c never worked the way we now consider correct.
[Message part 3 (message/rfc822, inline)]
[Message part 4 (text/plain, inline)]
Hi,
I use sed to modify the field of size in file header for some binaries, and
I found it will failed when the file size included *\x5c* (backslash) after
converted into hexadecimal.
There is the Proof-of-Concept:
# echo z | sed 's/z/\x5c/' # \x5c == '\'
\ # success
# echo z | sed 's/z/\x5c\x61/'
a # backslash is gone
According the manual, *\xxx* should produce an ascii character. sed should
not treat *\x5c* as an escape symbol.
I also try the replacement with '&' and it's work fine:
# echo z | sed 's/z/\x26\x61/' # \x26 == '&'
&a // replace to &
# echo z | sed 's/z/&\x61/'
za // execute & feature
I try to fix the problem and I hope it will be useful. Sorry for my bad
English.
https://github.com/0xddaa/sed/commit/723fa224c771ecd16913aea8117aa917877bbd38
Sincerely,
ddaa
[Message part 5 (text/html, inline)]
This bug report was last modified 7 years and 132 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.