GNU bug report logs - #58605
29.0.50; Commit 2a2f5530fa2 breaks ldap-search-internal

Previous Next

Package: emacs;

Reported by: Jens Lechtenboerger <lechten <at> wi.uni-muenster.de>

Date: Tue, 18 Oct 2022 06:07:02 UTC

Severity: normal

Found in version 29.0.50

Fixed in version 29.1

Done: Filipp Gunbin <fgunbin <at> fastmail.fm>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Jens Lechtenboerger <lechten <at> wi.uni-muenster.de>
To: 58605 <at> debbugs.gnu.org
Subject: bug#58605: 29.0.50; Commit 2a2f5530fa2 breaks ldap-search-internal
Date: Tue, 18 Oct 2022 08:05:53 +0200
Hi there,

commit 2a2f5530fa230e2b994be5683e63763833bb6a0a breaks
ldap-search-internal for searches with empty results.

Consider this search with ldapsearch, returning an empty result:

ldapsearch -h ldap.pca.dfn.de -tt -x -b O=DFN-Verein,C=DE \
'(mail=x <at> example.org)' userCertificate
# extended LDIF
#
# LDAPv3
# base <O=DFN-Verein,C=DE> with scope subtree
# filter: (mail=x <at> example.org)
# requesting: userCertificate 
#

# search result
search: 2
result: 0 Success

# numResponses: 1

The problem is that ldap-search-internal interprets the 2 in line
"search: 2" as filename with a certificate, bound to variable value.
Thus, (insert-file-contents-literally value) results in an error:
File is missing: "Opening input file", "Datei oder Verzeichnis nicht
gefunden", "[currentdir]/2"

Execute that:
(let ((ldap-default-base "O=DFN-Verein,C=DE")
      (ldap-ldapsearch-args '("-x" "-tt" "-H ldaps://ldap.pca.dfn.de"))
      (search-plist '(host "" filter "mail=x <at> example.org" attributes ("userCertificate") attrsonly nil withdn nil)))
  (ldap-search-internal search-plist))

Previously, that returned nil, after the mentioned commit it
produces the above error.

The added “?” should be removed there again:

@@ -699,7 +699,7 @@ ldap-search-internal
 	  (forward-line 1)
           (while (looking-at "^\\([A-Za-z][-A-Za-z0-9]*\
 \\|[0-9]+\\(?:\\.[0-9]+\\)*\\)\\(;[-A-Za-z0-9]+\\)*[=:\t ]+\
-\\(<[\t ]*file://\\)\\(.*\\)$")
+\\(<[\t ]*file://\\)?\\(.*\\)$")
 	    (setq name (match-string 1)
 		  value (match-string 4))
             ;; Need to handle file:///D:/... as generated by OpenLDAP

Thanks
Jens




This bug report was last modified 2 years and 265 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.