bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Extended regex match (shmatch.c:115) malloc error


From: Gyorgy Matyasfalvi
Subject: Extended regex match (shmatch.c:115) malloc error
Date: Mon, 9 Aug 2021 13:08:32 -0400

Hello,

Would like to report the following:

###########################################################################
Configuration Information [Automatically generated, do not change]:
Machine: ia64
OS: hpux11.31
Compiler: cc
Compilation CFLAGS: -O -I/usr/local/include -D_XOPEN_SOURCE_EXTENDED +DD64
uname output: HP-UX sovmh352 B.11.31 U ia64 1429105484 unlimited-user
license
Machine Type: ia64-hp-hpux11.31

Bash Version: 5.1
Patch Level: 8
Release Status: release

Description:
        When a regex matches inside [[ ]] it results in a malloc error.
        Whereas if it doesn't you get expected behavior.

        Take the code below:
----------------------------------------------------------------------------------
        #!/usr/bin/env bash

        text="123 text!"
        if [[ "$text" =~ "123" ]]; then
                printf "'123' in '$text'\n"
        else
                printf "'123' not in '$text'\n"
        fi
----------------------------------------------------------------------------------
        You will receive:
----------------------------------------------------------------------------------
        malloc: shmatch.c:115: assertion botched
        free: start and end chunk sizes differ
        Aborting...ABORT instruction (core dumped)
----------------------------------------------------------------------------------

        On the other hand the code below works as expected:
----------------------------------------------------------------------------------
        #!/usr/bin/env bash

        text="123 text!"

        if [[ "$text" =~ "zzz" ]]; then
                printf "'zzz' in '$text'\n"
        else
                printf "'zzz' not in '$text'\n"
        fi
----------------------------------------------------------------------------------
        You will receive:
----------------------------------------------------------------------------------
        'zzz' not in '123 text!'
----------------------------------------------------------------------------------

Repeat-By:
        fails.sh:
----------------------------------------------------------------------------------
        text="123 text!"
        if [[ "$text" =~ "123" ]]; then
                printf "'123' in '$text'\n"
        else
                printf "'123' not in '$text'\n"
        fi
----------------------------------------------------------------------------------
        Then execute: bash fails.sh
###########################################################################

Let me know if you need anything else. Best wishes,
Gyorgy


reply via email to

[Prev in Thread] Current Thread [Next in Thread]