Hi Graham, Adam is right. There were issues in FilterMatch.pm
Please find attached a patch (created with git format-patch) that fixes this issue (003-FilterMatch.pm-fix-regex-treatment-in-_-cis-exact-_.patch) together with 3 other patches (which I had lying around here, or fix issues I found when fixing Adam's issue): * 0001-fix-typo.patch fix a typo in the CREDITS file * 0002-use-current-IO-Socket-SSL-s-method-start_SSL-inste.patch use a non-outdated method of IO::Socket::SSL, raising the minimally required version of I::S::S a bit. * 0003-FilterMatch.pm-fix-regex-treatment-in-_-cis-exact-_.patch the issue at hand * 0004-FilterMatch.pm-correct-of-args-in-function-declar.patch fix # of args in function declarations/definitions Please add them to your repo. Thanks in advance Peter -- Peter Marschall pe...@adpm.de
From 64194a7d46cc5dd665678346c42e80a2918eae35 Mon Sep 17 00:00:00 2001 From: Peter Marschall <pe...@adpm.de> Date: Sun, 21 Sep 2008 19:56:32 +0200 Subject: [PATCH] fix typo Signed-off-by: Peter Marschall <pe...@adpm.de> --- CREDITS | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git CREDITS CREDITS index 75472db..11830d9 100644 --- CREDITS +++ CREDITS @@ -13,7 +13,7 @@ counting :) --------------- To give due honor to those who have made perl-ldap what is is today, here -are some of the people who have contributed, either in code, documentaion +are some of the people who have contributed, either in code, documentation or just ideas/feedback. If I have missed anyone, please let me know. Graham Barr <gb...@pobox.com> -- 1.6.2.4
From ef9f226fa8e9a1e29bd44599913830295de088f7 Mon Sep 17 00:00:00 2001 From: Peter Marschall <pe...@adpm.de> Date: Wed, 13 May 2009 17:35:54 +0200 Subject: [PATCH] FilterMatch.pm: fix regex treatment in _{cis,exact}_substrings(). Signed-off-by: Peter Marschall <pe...@adpm.de> --- lib/Net/LDAP/FilterMatch.pm | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git lib/Net/LDAP/FilterMatch.pm lib/Net/LDAP/FilterMatch.pm index 307fa99..40c6550 100644 --- lib/Net/LDAP/FilterMatch.pm +++ lib/Net/LDAP/FilterMatch.pm @@ -17,7 +17,7 @@ use Net::LDAP::Filter; use Net::LDAP::Schema; use vars qw($VERSION); -$VERSION = '0.17'; +$VERSION = '0.17_01'; sub import { shift; @@ -244,16 +244,18 @@ sub _cis_substrings($@) { my $regex=shift; my $op=shift; + return 1 if ($regex =~ /^$/); - return grep(/\Q$regex\E/i, @_) ? 1 : 0; + return grep(/$regex/i, @_) ? 1 : 0; } sub _exact_substrings($@) { my $regex=shift; my $op=shift; + return 1 if ($regex =~ /^$/); - return grep(/\Q$regex\E/, @_) ? 1 : 0; + return grep(/$regex/, @_) ? 1 : 0; } # this one is here in case we don't use schema -- 1.6.2.4
From b4c33882e03c2e3121f04e91ee77c13a45ceceed Mon Sep 17 00:00:00 2001 From: Peter Marschall <pe...@adpm.de> Date: Tue, 6 Jan 2009 20:51:37 +0100 Subject: [PATCH] use current IO::Socket::SSL's method start_SSL instead of deprecated function socketToSSL; raise required IO::Socket:SSL version appropriately Signed-off-by: Peter Marschall <pe...@adpm.de> --- Makefile.PL | 2 +- lib/Net/LDAP.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git Makefile.PL Makefile.PL index 8b8fd96..629ccf1 100644 --- Makefile.PL +++ Makefile.PL @@ -39,7 +39,7 @@ features( ], 'LDAPS' => [ -default => 0, - 'IO::Socket::SSL' => 0.81, + 'IO::Socket::SSL' => 0.93, ], 'Read/Write DSML files' => [ -default => 0, diff --git lib/Net/LDAP.pm lib/Net/LDAP.pm index 9ed1339..c470088 100644 --- lib/Net/LDAP.pm +++ lib/Net/LDAP.pm @@ -1024,7 +1024,7 @@ sub start_tls { my $sock_class = ref($sock); return $mesg - if IO::Socket::SSL::socketToSSL($sock, {_SSL_context_init_args($arg)}); + if IO::Socket::SSL->start_SSL($sock, {_SSL_context_init_args($arg)}); my $err = $@ || $IO::Socket::SSL::SSL_ERROR || $IO::Socket::SSL::SSL_ERROR || ''; # avoid use on once warning -- 1.6.2.4
From c3a0fa6969b5028ddacf453758375fce07eb4a45 Mon Sep 17 00:00:00 2001 From: Peter Marschall <pe...@adpm.de> Date: Wed, 13 May 2009 18:19:16 +0200 Subject: [PATCH] FilterMatch.pm: correct # of args in function declarations/definitions Signed-off-by: Peter Marschall <pe...@adpm.de> --- lib/Net/LDAP/FilterMatch.pm | 42 +++++++++++++++++++++--------------------- 1 files changed, 21 insertions(+), 21 deletions(-) diff --git lib/Net/LDAP/FilterMatch.pm lib/Net/LDAP/FilterMatch.pm index 40c6550..7cbb513 100644 --- lib/Net/LDAP/FilterMatch.pm +++ lib/Net/LDAP/FilterMatch.pm @@ -17,7 +17,7 @@ use Net::LDAP::Filter; use Net::LDAP::Schema; use vars qw($VERSION); -$VERSION = '0.17_01'; +$VERSION = '0.17_02'; sub import { shift; @@ -37,16 +37,16 @@ use vars qw(@approxMatchers); sub _filterMatch($@); -sub _cis_equalityMatch($@); -sub _exact_equalityMatch($@); -sub _numeric_equalityMatch($@); -sub _cis_orderingMatch($@); -sub _numeric_orderingMatch($@); -sub _cis_greaterOrEqual($@); -sub _cis_lessOrEqual($@); -sub _cis_approxMatch($@); -sub _cis_substrings($@); -sub _exact_substrings($@); +sub _cis_equalityMatch($$@); +sub _exact_equalityMatch($$@); +sub _numeric_equalityMatch($$@); +sub _cis_orderingMatch($$@); +sub _numeric_orderingMatch($$@); +sub _cis_greaterOrEqual($$@); +sub _cis_lessOrEqual($$@); +sub _cis_approxMatch($$@); +sub _cis_substrings($$@); +sub _exact_substrings($$@); # all known matches from the OL 2.2 schema, *_bitStringMatch = \&_exact_equalityMatch; @@ -168,7 +168,7 @@ sub _filterMatch($@) return undef; # all other filters => fail with error } -sub _cis_equalityMatch($@) +sub _cis_equalityMatch($$@) { my $assertion = shift; my $op = shift; @@ -176,7 +176,7 @@ sub _cis_equalityMatch($@) return grep(/^\Q$assertion\E$/i, @_) ? 1 : 0; } -sub _exact_equalityMatch($@) +sub _exact_equalityMatch($$@) { my $assertion = shift; my $op = shift; @@ -184,7 +184,7 @@ sub _exact_equalityMatch($@) return grep(/^\Q$assertion\E$/, @_) ? 1 : 0; } -sub _numeric_equalityMatch($@) +sub _numeric_equalityMatch($$@) { my $assertion = shift; my $op = shift; @@ -192,7 +192,7 @@ sub _numeric_equalityMatch($@) return grep(/^\Q$assertion\E$/, @_) ? 1 : 0; } -sub _cis_orderingMatch($@) +sub _cis_orderingMatch($$@) { my $assertion = shift; my $op = shift; @@ -208,7 +208,7 @@ sub _cis_orderingMatch($@) }; } -sub _exact_orderingMatch($@) +sub _exact_orderingMatch($$@) { my $assertion = shift; my $op = shift; @@ -224,7 +224,7 @@ sub _exact_orderingMatch($@) }; } -sub _numeric_orderingMatch($@) +sub _numeric_orderingMatch($$@) { my $assertion = shift; my $op = shift; @@ -240,7 +240,7 @@ sub _numeric_orderingMatch($@) }; } -sub _cis_substrings($@) +sub _cis_substrings($$@) { my $regex=shift; my $op=shift; @@ -249,7 +249,7 @@ sub _cis_substrings($@) return grep(/$regex/i, @_) ? 1 : 0; } -sub _exact_substrings($@) +sub _exact_substrings($$@) { my $regex=shift; my $op=shift; @@ -260,7 +260,7 @@ sub _exact_substrings($@) # this one is here in case we don't use schema -sub _cis_greaterOrEqual($@) +sub _cis_greaterOrEqual($$@) { my $assertion=shift; my $op=shift; @@ -275,7 +275,7 @@ sub _cis_greaterOrEqual($@) *_cis_lessOrEqual = \&_cis_greaterOrEqual; -sub _cis_approxMatch($@) +sub _cis_approxMatch($$@) { my $assertion=shift; my $op=shift; -- 1.6.2.4