[leaf-devel] Busybox has buggy regex handling

2008-02-28 Thread Mats Erik Andersson
Hi folks,

this is preliminary information that Busybox does
not possess a full command of regular expression
to the extent desirable for the 3.1 of Bering.
I know for certain that this disturbs the validation
I have implemented for Webconf, but those of you who
rely on regular expressions in other subsystems of
Bering ought to read the following exposition.

The problem is that the regex handling in Busybox
cannot correctly resolve repetitions using \{n\}.
The following is a reduction of the actual case
that disturbs my validation of ip-addresses inside
/var/webconf/lib/validator.sh.

firewall# ### Matches exactly {0,...,25}
firewall# tjugufem=\(1\?[0-9]\|2[0-5]\)
firewall# ### Should match n-m-k, where n,m,k in {0,...,25}
firewall# Trenne=$tjugufem\(-$tjugufem\)\{2\}
firewall#
firewall# echo 25-19-25 | grep ^$Trenne$
25-19-25
firewall# echo 25-20-25 | grep ^$Trenne$
firewall#

Using the fullgrown sed on my Debian system, the
expected match on 25-20-25 does appear, but not
so on Bering 3.1.

It is not very probable that some other subsystem
uses this kind of regular expression, but you ought
to take this into consideration until I find time to
develop a patch for Busybox, and which still will not
take effect until next release of Bering!

Best regards

Mats Erik Andersson 



-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel


Re: [leaf-devel] Busybox has buggy regex handling

2008-02-28 Thread Charles Steinkuehler
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Mats Erik Andersson wrote:
| Hi folks,
|
| this is preliminary information that Busybox does
| not possess a full command of regular expression
| to the extent desirable for the 3.1 of Bering.
| I know for certain that this disturbs the validation
| I have implemented for Webconf, but those of you who
| rely on regular expressions in other subsystems of
| Bering ought to read the following exposition.
|
| The problem is that the regex handling in Busybox
| cannot correctly resolve repetitions using \{n\}.
| The following is a reduction of the actual case
| that disturbs my validation of ip-addresses inside
| /var/webconf/lib/validator.sh.
|
| firewall# ### Matches exactly {0,...,25}
| firewall# tjugufem=\(1\?[0-9]\|2[0-5]\)
| firewall# ### Should match n-m-k, where n,m,k in {0,...,25}
| firewall# Trenne=$tjugufem\(-$tjugufem\)\{2\}
| firewall#
| firewall# echo 25-19-25 | grep ^$Trenne$
| 25-19-25
| firewall# echo 25-20-25 | grep ^$Trenne$
| firewall#

Can you provide the exact sed code you're working with?  I don't have
the validator.sh code handy to examine directly.

It looks like the regular expression you're passing to grep is:

~  $ echo ^$Trenne$
~  ^\(1\?[0-9]\|2[0-5]\)\(-\(1\?[0-9]\|2[0-5]\)\)\{2\}$

For portability I would suggest directly crafting an extended regular
expression (rather than escaping all the extended metacharacters in a
standard regex).  To gnu sed, the above and below are identical, but
they might not be to busybox.  Try the following, as an extended
expression (ie: egrep or sed -r), and see if it's still buggy:

~  egrep '^(1?[0-9]|2[0-5])(-(1?[0-9]|2[0-5])){2}$'

...and try changing the location of the iterator to the first regex:

~  egrep '^((1?[0-9]|2[0-5])-){2}(1?[0-9]|2[0-5])$'

Minor glitches like this are why the old (2.2 based kernel) releases
used the 'real' sed.  :)

- --
Charles Steinkuehler
[EMAIL PROTECTED]
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHx5RWLywbqEHdNFwRAv19AJoD+CGhagwaUQOEGKuDlDCQGFAI3ACgidZ+
QPHg8StqqnhqHq1SE2GKwtA=
=Q51A
-END PGP SIGNATURE-

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/

___
leaf-devel mailing list
leaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/leaf-devel