Re: '=~' crash on NetBSD

2020-05-07 Thread Chet Ramey
On 5/6/20 2:08 PM, Martijn Dekker wrote:
> On NetBSD, bash (all versions, including current git) dumps core when using
> [[ to match against an ERE containing certain UTF-8 characters, for
> example, É ($'\303\211').
> 
> | $ bin/bash-5.0-debug -c "[[ c =~ $'\303\211' ]]"
> |
> | malloc: unknown:0: assertion botched
> | malloc: 0x81ba08: allocated: last allocated from unknown:0
> | free: start and end chunk sizes differ
> | Aborting...Abort trap (core dumped)

What version of NetBSD? I don't run NetBSD, and I can't reproduce this on
other platforms, so I'll have to go searching for something.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/



Re: '=~' crash on NetBSD

2020-05-07 Thread Martijn Dekker

Op 07-05-20 om 14:20 schreef Chet Ramey:

On 5/6/20 2:08 PM, Martijn Dekker wrote:

On NetBSD, bash (all versions, including current git) dumps core when using
[[ to match against an ERE containing certain UTF-8 characters, for
example, É ($'\303\211').

| $ bin/bash-5.0-debug -c "[[ c =~ $'\303\211' ]]"
|
| malloc: unknown:0: assertion botched
| malloc: 0x81ba08: allocated: last allocated from unknown:0
| free: start and end chunk sizes differ
| Aborting...Abort trap (core dumped)


What version of NetBSD? I don't run NetBSD, and I can't reproduce this on
other platforms, so I'll have to go searching for something.


Sorry about that omission. I've tested NetBSD 8.0, 8.1 and 9.0 (all 
amd64) and the bug occurs on all of these.


If it helps, sdf.org will give you a free NetBSD 8.1 user account with 
access to gcc.


- M.

--
modernish -- harness the shell
https://github.com/modernish/modernish



Re: '=~' crash on NetBSD

2020-05-07 Thread Chet Ramey
On 5/7/20 10:55 AM, Martijn Dekker wrote:
> Op 07-05-20 om 14:20 schreef Chet Ramey:
>> On 5/6/20 2:08 PM, Martijn Dekker wrote:
>>> On NetBSD, bash (all versions, including current git) dumps core when using
>>> [[ to match against an ERE containing certain UTF-8 characters, for
>>> example, É ($'\303\211').
>>>
>>> | $ bin/bash-5.0-debug -c "[[ c =~ $'\303\211' ]]"
>>> |
>>> | malloc: unknown:0: assertion botched
>>> | malloc: 0x81ba08: allocated: last allocated from unknown:0
>>> | free: start and end chunk sizes differ
>>> | Aborting...Abort trap (core dumped)
>>
>> What version of NetBSD? I don't run NetBSD, and I can't reproduce this on
>> other platforms, so I'll have to go searching for something.
> 
> Sorry about that omission. I've tested NetBSD 8.0, 8.1 and 9.0 (all amd64)
> and the bug occurs on all of these.

It dies in regfree(). The pattern is correct at entry ("\303\211"), and
none of the allocations and frees in sh_regmatch fail. I'm calling it a
NetBSD bug.

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp://tiswww.cwru.edu/~chet/