https://bugs.openldap.org/show_bug.cgi?id=10297

          Issue ID: 10297
           Summary: LDAP initialization does unnecessary resolution of
                    hostname
           Product: OpenLDAP
           Version: 2.6.8
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Keywords: needs_review
          Severity: normal
          Priority: ---
         Component: libraries
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

curl --version does try to resolve local hostname, which is usually stored in
$HOSTNAME variable. It seems it does that for no good reason. It does not
matter whether machine hostname is already FQDN or not, it always try it
unconditionally by calling getaddrinfo(3).

Every usage of dnf tries to resolve hostname. That is then supressed by
myhostname on Fedora, which returns non-helping response. Possibly, the
hostname should be fetched from actual network responses.

Seen with:
openldap-2.6.8-5.fc41.x86_64

Reproducible: Always

Steps to Reproduce:
1. dnf install gdb curl
2. gdb --args curl --version
3. (gdb) break getaddrinfo
4. (gdb) run
Actual Results:  
getaddrinfo is called with current hostname, stored into ldap_int_hostname
variable. That is used only when ldap client has not configured target server.
But this hostname seems fetched always.

Expected Results:  
No network activity happens, unless something is actually requested. This is
not the case.

Suggestion is to make it lazy initialized. It should be tried only when
necessary. This seems to be useful when tlso_session_chkhost in
libraries/libldap/tls_o.c is used. It should initialize hostname only once
conditions to use it happens. There is a fallback anyway. It should query FQDN
only when name_in contains unusable response.

Related: https://github.com/systemd/systemd/issues/34897

-- 
You are receiving this mail because:
You are on the CC list for the issue.

Reply via email to