Bug 825713 - find2perl does not translate ? glob properly
find2perl does not translate ? glob properly
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: perl (Show other bugs)
Unspecified Unspecified
medium Severity medium
: rc
: ---
Assigned To: Petr Pisar
Martin Kyral
: EasyFix, Patch
Depends On:
  Show dependency treegraph
Reported: 2012-05-28 05:26 EDT by Petr Pisar
Modified: 2013-11-20 23:40 EST (History)
2 users (show)

See Also:
Fixed In Version: perl-5.10.1-133.el6
Doc Type: Bug Fix
Doc Text:
Cause: Using find2perl(1) tool to translate file name glob `a?b' to a Perl code. Consequence: The `?' glob is translated erroneously and resulting Perl code matches different names than the find(1) tool. Fix: Glob expression translator has been corrected not to copy the question mark to resulting regular expression. Result: find2perl(1) matches the same files as the find(1) tool when using globs with a question mark.
Story Points: ---
Clone Of: 825701
Last Closed: 2013-11-20 23:40:37 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Petr Pisar 2012-05-28 05:26:02 EDT
+++ This bug was initially created as a clone of Bug #825701 +++

$ find2perl -name 'a?b'
# Traverse desired filesystems
File::Find::find({wanted => \&wanted}, '.');
sub wanted {
    && print("$name\n");

The regular expression is wrong. Correct one is /^a.b\z/s.

Reported to upstream as <https://rt.perl.org/rt3/Public/Bug/Display.html?id=113054>. Patch is available there:

--- find2perl.orig 2012-03-06 19:36:39.000000000 +0000
+++ find2perl 2012-05-23 12:21:04.976166972 +0100
@@ -648,7 +648,8 @@
sub fileglob_to_re ($) {
my $x = shift;
$x =~ s#([./^\$()+])#\\$1#g;
- $x =~ s#([?*])#.$1#g;
+ $x =~ s#\*#.*#g;
+ $x =~ s#\?#.#g;

RHEL-6.2 (perl-5.10.1-127.el6.x86_64) is affected.
Comment 11 errata-xmlrpc 2013-11-20 23:40:37 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.