Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #14442

Improper handling of \! and \( while using Bash V4.1.2

Path csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From anant garg <garginfo158@gmail.com>
Newsgroups gnu.bash.bug
Subject Improper handling of \! and \( while using Bash V4.1.2
Date Mon, 6 Aug 2018 16:14:49 +0530
Lines 49
Approved bug-bash@gnu.org
Message-ID <mailman.4737.1533558714.1292.bug-bash@gnu.org> (permalink)
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain; charset="UTF-8"
X-Trace usenet.stanford.edu 1533558715 26179 208.118.235.17 (6 Aug 2018 12:31:55 GMT)
X-Complaints-To action@cs.stanford.edu
To bug-bash <bug-bash@gnu.org>
Envelope-to bug-bash@gnu.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=w8XH/CXTQ/SKOLsORw6sYFp0KUgRcQ44/LLF+LWis7c=; b=TiczVCC5LSkgDZE8JU+hKyUN/iS6p5/HivtS8/QbezzioVvx6Jk1b+rcSsUOY5jBKA U2H+XSrkxKjFeuY7OXsqvvCCPAHR9C760f+O9VUInodjwGvGeJJleDA7y8w/KiPHrDai x0O7tJ9s+h+wPjt1FJ9Chgas4B0eDDXvzkX3T1vnXaEJDyOUjWIMWDomzWJzOOQimXb2 Az9EUqOUjkKNde11Un3DS7ZmYcHxTburvIbSROhtfIkPnSnlIAs+abq+guTV0lnuVN1C XhJfho4XK4Z16MpCt7bjqh9tgQgVVjcfEAW2MXG1zG4gfuAH+xMBvON8wOauKbVTEXbS D8eQ==
X-Google-DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=w8XH/CXTQ/SKOLsORw6sYFp0KUgRcQ44/LLF+LWis7c=; b=P3or2zGlzk2aYMf0KPSpd/81wdGdeOry2ujwFsUN17qs3joO4ArH29JTFhJBhf5vCL RwWzL3bhERAvtdEEXUdfEfbKzTaxArXc3xY2xRnHh4lxcOeBoJc3UeL96Plno9JZhNMQ L8n0gt+/lK3Hlz1mfdOGQ+TaTO5Z05erNG8SFwpfWZj2A2cBQ2MXloq9wxYPygZVS1sY wCdXoBBY5kf3oyw9gfnv+OXe2MriK05ZHP4vKuJiIMR1q9Z/HpNzMNQSSk0T0v/6sLEk DlfyjIjyJpE2QLvn177SQ6VwkjPWcriX455WaXDdP+CNhEB5s/coy61G/pS3wMYgzTxN GvgQ==
X-Gm-Message-State AOUpUlEmDdXqEXLl2UbvStOHm3KoN1BqBWtWo+9o+7l8veivRtU46g5L EDdlBCGQtQxLb4GXOR9ojcmKPg97bzSDX6+yaQZ9qw3V
X-Google-Smtp-Source AAOMgpdkti0ysxF2U5959LLsqZk4n4byTmv1BxV1Uwqx5JbHLzRMj3AmKrxAjNKs8QOixSbxpZCtFU6lVS9AIUl2qOM=
X-Received by 2002:a24:d0cd:: with SMTP id m196-v6mr15666715itg.9.1533552290444; Mon, 06 Aug 2018 03:44:50 -0700 (PDT)
X-detected-operating-system by eggs.gnu.org: Genre and OS details not recognized.
X-Received-From 2607:f8b0:4001:c0b::241
X-Mailman-Approved-At Mon, 06 Aug 2018 08:31:53 -0400
X-Content-Filtered-By Mailman/MimeDel 2.1.21
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-bash/>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.bash.bug:14442

Show key headers only | View raw


Hi ,

I am using the below environment.

Linux kernel :- kernel-2.6.32-504.16.2.el6.x86_64
Bash version :- bash-4.1.2-29.x86_64

In our production code, one test related to parameter validation failed as
below :-

$ mode=!
$ [ "$mode" != "ro" -a "$mode" != "rw" ] && echo OK
+ '[' '!' '!=' ro -a '!' '!=' rw ']'
bash: [: too many arguments

I checked the source and found that when multiple checks are done in one
single test expression then ! parsing fails.

For eg, the below works :-
$ mode=!
$ [ "$mode" != "ro" ] && echo OK
OK

The below also works :-
$ mode=\!
$ [ "$mode" != "ro" ] && echo OK
OK


The below also works :-
$ mode=\(
$ [ "$mode" != "ro" ] && echo OK
OK


but when below is run where multiple conditions are tested, then the
parsing fails.

For eg:-
mode=\(
[ "$mode" != "ro" -a "$mode" != "rw" ] && echo OK
bash: [: `)' expected, found ro

I tried testing with other special characters as well, but this issue came
with only !,\! or \(.

When I tested with extended test i.e [[ , this issue did not came.
Was there any known bug in Bash V4.1.2 related to parsing of multiple ! or
\( in [.

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Improper handling of \! and \( while using Bash V4.1.2 anant garg <garginfo158@gmail.com> - 2018-08-06 16:14 +0530

csiph-web