This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] scripts/test-installation.pl: Handle NSS crypto libraries [BZ #21940]
- From: fweimer at redhat dot com (Florian Weimer)
- To: libc-alpha at sourceware dot org
- Date: Thu, 10 Aug 2017 14:30:22 +0200
- Subject: [PATCH] scripts/test-installation.pl: Handle NSS crypto libraries [BZ #21940]
- Authentication-results: sourceware.org; auth=none
- Authentication-results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
- Authentication-results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=fweimer at redhat dot com
- Dmarc-filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 90FFDC0079B1
The warning looked like this:
Use of uninitialized value in string ne at
…/scripts/test-installation.pl line 184, <LDD> line 24.
It is triggered by this line of ldd output:
libfreebl3.so => /lib64/libfreebl3.so (0x00007f055003c000)
The other lines have a version in the soname:
libanl.so.1 => /lib64/libanl.so.1 (0x00007f055023f000)
2017-08-10 Florian Weimer <fweimer@redhat.com>
[BZ #21940]
* scripts/test-installation.pl: Handle NSS crypto libaries in ldd
output.
diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
index 4b0e9f3c4a..466c526cc9 100755
--- a/scripts/test-installation.pl
+++ b/scripts/test-installation.pl
@@ -177,10 +177,15 @@ open LDD, "ldd /tmp/test-prg$$ |"
or die ("Couldn't execute ldd");
while (<LDD>) {
if (/^\s*lib/) {
+ # When libcrypt is linked against NSS, some of the referenced
+ # libraries do not have a trailing version in their soname.
($name, $version1, $version2) =
- /^\s*lib(\w*)\.so\.([0-9\.]*)\s*=>.*\.so\.([0-9\.]*)/;
+ /^\s*lib(\w*)\.so(?:\.([0-9\.]*))?\s*=>.*\.so(?:\.([0-9\.]*))?/;
$found{$name} = 1;
- if ($versions{$name} ne $version1 || $version1 ne $version2) {
+ if (defined($version1) != defined($version2)
+ || defined($version1) != defined($versions{$name})
+ || (defined($versions{$name})
+ && ($versions{$name} ne $version1 || $version1 ne $version2))) {
print "Library lib$name is not correctly installed.\n";
print "Please check your installation!\n";
print "Offending line of ldd output: $_\n";