[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: Failure in decoding filter



Nothing springs to mind but I'll see what I can find.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support 

> -----Original Message-----
> From: masarati@carnelian.propagation.net
> [mailto:masarati@carnelian.propagation.net]On Behalf Of Pierangelo
> Masarati
> Sent: Thursday, February 14, 2002 7:02 AM
> To: Howard Chu
> Cc: OpenLDAP Devel
> Subject: Failure in decoding filter
> 
> 
> Howard,
> 
> these filters are decoded correctly:
> 
> 	(cn=And*o)
> 	(cn=A*o)
> 
> while these are failing:
> 
> 	(cn=An*o)
> 	(cn=A*do)
> 
> In servers/slapd/get_substring_filter() the latter two cases
> don't detect the end of the ber.  I can't tell if it's a decoding
> or an encoding problem, though.  The debug outputs are:
> 
> <server>
> begin get_substring_filter
> ber_scanf fmt ({m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba4b end=0x081aba65 len=26
>   0000:  a4 16 04 02 63 6e 30 10  80 01 61 82 02 64 6f 82  
> ....cn0...a..do.  
>   0010:  01 04 82 01 04 82 01 21  30 00                    
> .......!0.        
> ber_scanf fmt (m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba53 end=0x081aba65 len=18
>   0000:  80 01 61 82 02 64 6f 82  01 04 82 01 04 82 01 21  
> ..a..do........!  
>   0010:  30 00                                             
> 0.                
>   INITIAL
> ber_scanf fmt (m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba56 end=0x081aba65 len=15
>   0000:  00 02 64 6f 82 01 04 82  01 04 82 01 21 30 00     
> ..do........!0.   
>   FINAL
> ber_scanf fmt (m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba5a end=0x081aba65 len=11
>   0000:  00 01 04 82 01 04 82 01  21 30 00                 
> ........!0.       
>   FINAL
>   error=2
> end get_filter 0
>     filter: (badfilter)
> ber_scanf fmt ({M}}) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba5d end=0x081aba65 len=8
>   0000:  00 01 04 82 01 21 30 00                           
> .....!0.          
> <= get_ctrls: n=136002088 rc=-2 err=unexpected data in PDU
> </server>
> 
> <client>
> Gee, I can't send you the client's log because with debug 
> on it doesn't fail!  Ok, here's the output of ftest:
> 
> [masarati@mbdyn ldap-devel]$ ./libraries/libldap/ftest '(cn=a*do)'
> Filter: (cn=a*do)
> BER encoding (len=15):
>   0000:  a4 0d 04 02 63 6e 30 07  80 01 61 82 02 64 6f     
> ....cn0...a..do   
> [masarati@mbdyn ldap-devel]$ ./libraries/libldap/ftest -d -1 '(cn=a*do)'
> Filter: (cn=a*do)
> put_filter: "(cn=a*do)"
> put_filter: simple
> put_simple_filter: "cn=a*do"
> put_substring_filter "cn=a*do"
> BER encoding (len=22):
>   0000:  a4 14 04 02 63 6e 30 0e  80 01 61 82 02 64 6f 82  
> ....cn0...a..do.  
>   0010:  05 f8 f8 0d 08 21  
> 
> with the server logging 
> 
> begin get_substring_filter
> ber_scanf fmt ({m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba4b end=0x081aba5c len=17
>   0000:  a4 0d 04 02 63 6e 30 07  80 01 61 82 02 64 6f 30  
> ....cn0...a..do0  
>   0010:  00                                                
> .                 
> ber_scanf fmt (m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba53 end=0x081aba5c len=9
>   0000:  80 01 61 82 02 64 6f 30  00                       
> ..a..do0.         
>   INITIAL
> ber_scanf fmt (m) ber:
> ber_dump: buf=0x081aba18 ptr=0x081aba56 end=0x081aba5c len=6
>   0000:  00 02 64 6f 30 00                                 
> ..do0.            
>   FINAL
> </client>
> 
> Any comment?
> 
> Ando
> 
> -- 
> Dr. Pierangelo Masarati               | voice: +39 02 2399 8309
> Dip. Ing. Aerospaziale                | fax:   +39 02 2399 8334
> Politecnico di Milano                 |
> mailto:pierangelo.masarati@polimi.it
> via La Masa 34, 20156 Milano, Italy   |
> http://www.aero.polimi.it/~masarati