Bug#924050: poppler-utils: pdfsig segfaults on signed PDF

2019-04-16 Thread Bernhard Übelacker
Dear Maintainer,
tried to have another look with the original input file.

In my minimal test VM I came again across the segfault I
described in message #10, which is not the
problem Wesley hit and got sumitted in #926404 too.
So I had to start firefox once to have a profile
in the home directory.

Then I could successfully reproduce the crash, see the
backtrace below with debug information.

For this I could not find a upstream bug report.
But upstream commit [1] changed method SignatureInfo::setSubjectDN
to avoid it.

Therefore tried to build with this patch and found that it
touches the same area as [2] from message #10, therefore
included that too before.

With both applied pdfsig gives information for this file
without crashing, with or without a .mozilla directory.

Kind regards,
Bernhard


#926404 https://bugs.debian.org/926404
[1] 
https://gitlab.freedesktop.org/poppler/poppler/commit/7486e4995d66f1a8676f3e65e408e8cdab049f6b
[2] 
https://gitlab.freedesktop.org/poppler/poppler/commit/a85c2ed8f4359341adb94887c4b551a761244fdb


(gdb) bt
#0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:120
#1  0x77a1bfee in __GI___strdup (s=s@entry=0x0) at strdup.c:41
#2  0x77e8340d in SignatureInfo::setSubjectDN 
(this=this@entry=0x555a3e80, subjectDN=0x0) at 
./poppler/SignatureInfo.cc:127
#3  0x77df3e19 in FormFieldSignature::validateSignature 
(forceRevalidation=, validationTime=-1, doVerifyCert=true, 
this=0x555a07f0) at ./poppler/Form.cc:1749
#4  FormFieldSignature::validateSignature (this=0x555a07f0, 
doVerifyCert=, forceRevalidation=, 
validationTime=-1) at ./poppler/Form.cc:1689
#5  0x6a5d in main (argc=, argv=) at 
/usr/include/c++/8/bits/stl_vector.h:979


(gdb) list SignatureInfo.cc:124,128
124 void SignatureInfo::setSubjectDN(const char *subjectDN)
125 {
126   free(subject_dn);
127   subject_dn = strdup(subjectDN);
128 }
>From a85c2ed8f4359341adb94887c4b551a761244fdb Mon Sep 17 00:00:00 2001
From: Albert Astals Cid 
Date: Sat, 17 Nov 2018 19:29:16 +0100
Subject: [PATCH] Be more stubborn looking for a nssdb

Fixes issue #669
(Bernhard Übelacker: Adapted to match debian package 0.71.0, https://bugs.debian.org/924050 )
---
 poppler/SignatureHandler.cc | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc
index a98e3f7..a49d34a 100644
--- a/poppler/SignatureHandler.cc
+++ b/poppler/SignatureHandler.cc
@@ -114,10 +114,19 @@ GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux()
 void SignatureHandler::init_nss() 
 {
   GooString *certDBPath = getDefaultFirefoxCertDB_Linux();
+  bool initSuccess = false;
   if (certDBPath == nullptr) {
-NSS_Init("sql:/etc/pki/nssdb");
+initSuccess = (NSS_Init("sql:/etc/pki/nssdb") == SECSuccess);
   } else {
-NSS_Init(certDBPath->getCString());
+initSuccess = (NSS_Init(certDBPath->getCString()) == SECSuccess);
+  }
+  if (!initSuccess) {
+GooString homeNssDb(getenv("HOME"));
+homeNssDb.append("/.pki/nssdb");
+initSuccess = (NSS_Init(homeNssDb.getCString()) == SECSuccess);
+if (!initSuccess) {
+  NSS_NoDB_Init(nullptr);
+}
   }
   //Make sure NSS root certificates module is loaded
   SECMOD_AddNewModule("Root Certs", "libnssckbi.so", 0, 0);
-- 
2.20.1

>From 7486e4995d66f1a8676f3e65e408e8cdab049f6b Mon Sep 17 00:00:00 2001
From: Albert Astals Cid 
Date: Wed, 16 Jan 2019 22:56:42 +0100
Subject: [PATCH] pdfsig: add -nssdir option
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Contains code inspired in code by Hans-Ulrich Jüttner and Adrian Johnson
(Bernhard Übelacker: Adapted to match debian package 0.71.0, https://bugs.debian.org/924050 )
---
 poppler/SignatureHandler.cc | 56 +
 poppler/SignatureHandler.h  |  9 --
 poppler/SignatureInfo.cc|  4 +--
 utils/pdfsig.1  | 15 --
 utils/pdfsig.cc | 12 ++--
 5 files changed, 68 insertions(+), 28 deletions(-)

diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc
index a57e9c3..49f91bd 100644
--- a/poppler/SignatureHandler.cc
+++ b/poppler/SignatureHandler.cc
@@ -41,7 +41,7 @@ unsigned int SignatureHandler::digestLength(SECOidTag digestAlgId)
 
 char *SignatureHandler::getSignerName()
 {
-  if (!CMSSignerInfo)
+  if (!CMSSignerInfo || !NSS_IsInitialized())
   return nullptr;
 
   CERTCertificate *cert = NSS_CMSSignerInfo_GetSigningCertificate(CMSSignerInfo, CERT_GetDefaultCertDB());
@@ -78,8 +78,7 @@ time_t SignatureHandler::getSigningTime()
   return static_cast(sTime/100);
 }
 
-
-GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux()
+static GooString *getDefaultFirefoxCertDB_Linux()
 {
   GooString * finalPath = nullptr;
   DIR *toSearchIn;
@@ -111,27 +110,45 @@ GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux()
 /**
  * Initialise NSS
  */
-void 

Bug#924050: poppler-utils: pdfsig segfaults on signed PDF

2019-04-16 Thread wesleys


Hello Bernhard,

> I am not sure anymore if the error I received is the same you got.
> Therefore, if you can still reproduce this issue, can you please
> run pdfsig inside a debugger like below and forward the output to
> this bug? You would at least need to install the package 'gdb'.
> 
>gdb -q -ex 'set width 0' -ex 'set pagination off' -ex 'run' -ex 'display/i 
> $pc'
>-ex 'bt' -ex 'detach' -ex 'quit' --args pdfsig ~/Downloads/bar.pdf

If I run this I get:

$ gdb -q -ex 'set width 0' -ex 'set pagination off' -ex 'run' -ex 'display/i 
$pc' -ex 'bt' -ex 'detach' -ex 'quit' --args /usr/bin/pdfsig bar.pdf
Reading symbols from /usr/bin/pdfsig...(no debugging symbols found)...done.
Starting program: /usr/bin/pdfsig bar.pdf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Digital Signature Info of: bar.pdf
Internal Error (0): Input couldn't be parsed as a CMS signature
Program received signal SIGSEGV, Segmentation fault.
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65
65  ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory.
1: x/i $pc
=> 0x77ad54f1 <__strlen_avx2+17>:   vpcmpeqb (%rdi),%ymm0,%ymm1
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65
#1  0x77a00fee in __GI___strdup (s=0x0) at strdup.c:41
#2  0x77e6840d in SignatureInfo::setSubjectDN(char const*) () from 
/usr/lib/x86_64-linux-gnu/libpoppler.so.82
#3  0x77dd8e19 in FormFieldSignature::validateSignature(bool, bool, 
long) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#4  0x6a5d in main ()
Detaching from program: /usr/bin/pdfsig, process 31855
[Inferior 1 (process 31855) detached]

$ gdb --args /usr/bin/pdfsig bar.pdf
GNU gdb (Debian 8.2.1-2) 8.2.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
.
Find the GDB manual and other documentation resources online at:
.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/pdfsig...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/pdfsig bar.pdf
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Digital Signature Info of: bar.pdf
Internal Error (0): Input couldn't be parsed as a CMS signature
Program received signal SIGSEGV, Segmentation fault.
__strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65
65  ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory.
(gdb) bt
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65
#1  0x77a00fee in __GI___strdup (s=0x0) at strdup.c:41
#2  0x77e6840d in SignatureInfo::setSubjectDN(char const*) () from 
/usr/lib/x86_64-linux-gnu/libpoppler.so.82
#3  0x77dd8e19 in FormFieldSignature::validateSignature(bool, bool, 
long) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
#4  0x6a5d in main ()
(gdb) bt full
#0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:65
No locals.
#1  0x77a00fee in __GI___strdup (s=0x0) at strdup.c:41
len = 
new = 
#2  0x77e6840d in SignatureInfo::setSubjectDN(char const*) () from 
/usr/lib/x86_64-linux-gnu/libpoppler.so.82
No symbol table info available.
#3  0x77dd8e19 in FormFieldSignature::validateSignature(bool, bool, 
long) () from /usr/lib/x86_64-linux-gnu/libpoppler.so.82
No symbol table info available.
#4  0x6a5d in main ()
No symbol table info available.
(gdb) quit
A debugging session is active.
Inferior 1 [process 30895] will be killed.
Quit anyway? (y or n) y

HTH,
Wesley



Bug#924050: poppler-utils: pdfsig segfaults on signed PDF

2019-04-16 Thread Bernhard Übelacker
Hello Wesley Schwengle,
I am not sure anymore if the error I received is the same you got.
Therefore, if you can still reproduce this issue, can you please
run pdfsig inside a debugger like below and forward the output to
this bug? You would at least need to install the package 'gdb'.

gdb -q -ex 'set width 0' -ex 'set pagination off' -ex 'run' -ex 'display/i 
$pc' -ex 'bt' -ex 'detach' -ex 'quit' --args pdfsig ~/Downloads/bar.pdf

This should print the required information when the segfault is
reached automatically and should need no more user input.

Kind regards,
Bernhard



Bug#924050: poppler-utils: pdfsig segfaults on signed PDF

2019-03-22 Thread Bernhard Übelacker
Control: tags 924050 + upstream fixed-upstream patch


Dear Maintainer,
I tried to reproduce this crash, and received one with
this example file [1].
But due to the lack of the submitters original
file, this crash might be different.

However, following crash got already fixed upstream [2][3]
and released in poppler 0.72.0.

The upstream patch needed slight modification.
An poppler package built with that patch shows the
signature information successfully.

Kind regards,
Bernhard


[1] https://blogs.adobe.com/security/SampleSignedPDFDocument.pdf
[2] https://gitlab.freedesktop.org/poppler/poppler/issues/669
[3] 
https://gitlab.freedesktop.org/poppler/poppler/commit/a85c2ed8f4359341adb94887c4b551a761244fdb


(gdb) bt
#0  0x7f33db0d1c84 in SECMOD_ReferenceModule (module=0x0) at pk11util.c:847
#1  0x7f33db0d21fc in SECMOD_AddModule (newModule=0x5648cf9cdd40) at 
pk11util.c:541
#2  SECMOD_AddModule (newModule=0x5648cf9cdd40) at pk11util.c:519
#3  0x7f33db0d22a0 in SECMOD_AddNewModuleEx (moduleName=0x7f33dbcfce7d 
"Root Certs", dllPath=0x7f33dbcfce6f "libnssckbi.so", defaultMechanismFlags=0, 
cipherEnableFlags=0, modparms=, nssparms=) at 
pk11util.c:695
#4  0x7f33dbcb1199 in SignatureHandler::SignatureHandler 
(this=0x7ffe927d1830, p7=0x5648cf9bed80 
"0\202&\341\006\t*\206H\206\367\r\001\a\002\240\202&\322\060\202&\316\002\001\001\061\v0\t\006\005+\016\003\002\032\005",
 p7_length=10971) at ./poppler/SignatureHandler.cc:136
#5  0x7f33dbbabb16 in FormFieldSignature::validateSignature 
(forceRevalidation=, validationTime=-1, doVerifyCert=true, 
this=0x5648cf99b7f0) at ./poppler/Form.cc:1722
#6  FormFieldSignature::validateSignature (this=0x5648cf99b7f0, 
doVerifyCert=, forceRevalidation=, 
validationTime=-1) at ./poppler/Form.cc:1689
#7  0x5648ceee7a5d in main (argc=, argv=) at 
/usr/include/c++/8/bits/stl_vector.h:979
>From a85c2ed8f4359341adb94887c4b551a761244fdb Mon Sep 17 00:00:00 2001
From: Albert Astals Cid 
Date: Sat, 17 Nov 2018 19:29:16 +0100
Subject: [PATCH] Be more stubborn looking for a nssdb

Fixes issue #669
(Bernhard Übelacker: Adapted to match debian package 0.71.0, https://bugs.debian.org/924050 )
---
 poppler/SignatureHandler.cc | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/poppler/SignatureHandler.cc b/poppler/SignatureHandler.cc
index a98e3f7..a49d34a 100644
--- a/poppler/SignatureHandler.cc
+++ b/poppler/SignatureHandler.cc
@@ -114,10 +114,19 @@ GooString *SignatureHandler::getDefaultFirefoxCertDB_Linux()
 void SignatureHandler::init_nss() 
 {
   GooString *certDBPath = getDefaultFirefoxCertDB_Linux();
+  bool initSuccess = false;
   if (certDBPath == nullptr) {
-NSS_Init("sql:/etc/pki/nssdb");
+initSuccess = (NSS_Init("sql:/etc/pki/nssdb") == SECSuccess);
   } else {
-NSS_Init(certDBPath->getCString());
+initSuccess = (NSS_Init(certDBPath->getCString()) == SECSuccess);
+  }
+  if (!initSuccess) {
+GooString homeNssDb(getenv("HOME"));
+homeNssDb.append("/.pki/nssdb");
+initSuccess = (NSS_Init(homeNssDb.getCString()) == SECSuccess);
+if (!initSuccess) {
+  NSS_NoDB_Init(nullptr);
+}
   }
   //Make sure NSS root certificates module is loaded
   SECMOD_AddNewModule("Root Certs", "libnssckbi.so", 0, 0);
-- 
2.20.1


# Buster amd64 qemu VM 2019-03-22

apt update
apt dist-upgrade


apt install dpkg-dev devscripts systemd-coredump poppler-utils gdb 
poppler-utils-dbgsym libpoppler82-dbgsym libnss3-dbgsym mc
apt build-dep poppler



wget https://blogs.adobe.com/security/SampleSignedPDFDocument.pdf

/usr/bin/pdfsig SampleSignedPDFDocument.pdf





mkdir /tmp/source/libnss3/orig -p
cd/tmp/source/libnss3/orig
apt source libnss3
cd



mkdir /tmp/source/poppler/orig -p
cd/tmp/source/poppler/orig
apt source poppler
cd



set width 0
set pagination off
directory /tmp/source/libnss3/orig/nss-3.42.1/nss/lib/pk11wrap
bt


##


benutzer@debian:~$ /usr/bin/pdfsig SampleSignedPDFDocument.pdf
Digital Signature Info of: SampleSignedPDFDocument.pdf
Internal Error (0): couldn't find default Firefox Folder
Speicherzugriffsfehler (Speicherabzug geschrieben)



[  168.783249] pdfsig[14900]: segfault at 38 ip 7f33db0d1c84 sp 
7ffe927d1750 error 4 in libnss3.so[7f33db08c000+f]
[  168.783259] Code: b2 a5 fb ff 48 85 c0 74 0f 48 c7 00 00 00 00 00 48 c7 40 
08 00 00 00 00 48 83 c4 08 c3 66 0f 1f 84 00 00 00 00 00 53 48 89 fb <48> 8b 7f 
38 e8 f3 bb fb ff 83 43 40 01 48 8b 7b 38 e8 66 c9 fb ff



root@debian:~# coredumpctl list
TIMEPID   UID   GID SIG COREFILE  EXE
Fri 2019-03-22 22:50:23 CET   14900  1000  1000  11 present   /usr/bin/pdfsig



root@debian:~# coredumpctl gdb 14900
   PID: 14900 (pdfsig)
   UID: 1000 (benutzer)
   GID: 1000 (benutzer)
Signal: 11 (SEGV)
 Timestamp: Fri 2019-03-22 22:50:23 CET (1min 41s ago)
  Command Line: /usr/bin/pdfsig SampleSignedPDFDocument.pdf
Executable: /usr/bin/pdfsig
 Control Group: 

Bug#924050: poppler-utils: pdfsig segfaults on signed PDF

2019-03-08 Thread Wesley Schwengle
Package: poppler-utils
Version: 0.71.0-3
Severity: important

Dear Maintainer,

$ /usr/bin/pdfsig ~/Downloads/bar.pdf
Digital Signature Info of: /home/wesleys/Downloads/bar.pdf
Internal Error (0): Input couldn't be parsed as a CMS signature
zsh: segmentation fault  /usr/bin/pdfsig ~/Downloads/bar.pdf

Mar  8 22:28:30 neptune kernel: [ 8383.032122] pdfsig[13393]: segfault
at 0 ip 7fb1e04c96a1 sp 7fffe6c20b48 error 4 in
libc-2.28.so[7fb1e038f000+148000]

I was hoping to see more information about bar.pdf

I installed poppler from the git repo and then you get this:

$ pdfsig ~/Downloads/bar.pdf
Digital Signature Info of: /home/wesleys/Downloads/bar.pdf
Internal Error (0): Input couldn't be parsed as a CMS signature
Signature #1:
- Signer Certificate Common Name: (null)
- Signer full Distinguished Name: (null)
- Signing Time: Mar 08 2019 11:10:19
- Signing Hash Algorithm: unknown
- Signature Type: adbe.pkcs7.detached
- Signed Ranges: [0 - 12877], [40303 - 123158]
- Total document signed
- Signature Validation: Unknown Validation Failure.

$ pdfsig -v
pdfsig version 0.74.0
Copyright 2005-2019 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC

Could you upgrade to the latest version? Many thanks.

* ldd from Debian package
$ ldd /usr/bin/pdfsig
linux-vdso.so.1 (0x7ffd131f7000)
libpoppler.so.82 => /usr/lib/x86_64-linux-gnu/libpoppler.so.82 
(0x7fee16c4c000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x7fee16ac8000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7fee16907000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 
(0x7fee1684b000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 
(0x7fee16805000)
libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x7fee1659c000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x7fee1637c000)
libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so (0x7fee1622e000)
libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so (0x7fee161ff000)
libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so (0x7fee161be000)
libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 
(0x7fee16167000)
liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 (0x7fee1610a000)
libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x7fee160cf000)
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x7fee1605)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x7fee1602f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x7fee15eac000)
/lib64/ld-linux-x86-64.so.2 (0x7fee16f65000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x7fee15e92000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x7fee15e53000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x7fee15e4a000)
libnssutil3.so => /usr/lib/x86_64-linux-gnu/libnssutil3.so (0x7fee15e18000)
libplc4.so => /usr/lib/x86_64-linux-gnu/libplc4.so (0x7fee15e11000)
libplds4.so => /usr/lib/x86_64-linux-gnu/libplds4.so (0x7fee15e0c000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x7fee15e07000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x7fee15dfb000)
libwebp.so.6 => /usr/lib/x86_64-linux-gnu/libwebp.so.6 (0x7fee15b92000)
libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1 (0x7fee15af2000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x7fee15aca000)
libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x7fee158bc000)

* ldd from source
$ ldd $HOME/.local/bin/pdfsig
linux-vdso.so.1 (0x7ffcc1be8000)
libpoppler.so.85 => /home/wesleys/.local/lib/libpoppler.so.85 
(0x7f4091501000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x7f4091356000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x7f4091195000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 
(0x7f40910d9000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 
(0x7f4091093000)
libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x7f4090e2a000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x7f4090c0a000)
libcurl-gnutls.so.4 => /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 
(0x7f4090b7c000)
libopenjp2.so.7 => /usr/lib/x86_64-linux-gnu/libopenjp2.so.7 
(0x7f4090b25000)
liblcms2.so.2 => /usr/lib/x86_64-linux-gnu/liblcms2.so.2 (0x7f4090ac8000)
libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x7f4090a8f000)
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x7f4090a1)
libnss3.so => /usr/lib/x86_64-linux-gnu/libnss3.so (0x7f40908c)
libsmime3.so => /usr/lib/x86_64-linux-gnu/libsmime3.so (0x7f4090891000)
libnspr4.so => /usr/lib/x86_64-linux-gnu/libnspr4.so (0x7f409085)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x7f409082f000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x7f40906ac000)
/lib64/ld-linux-x86-64.so.2 (0x7f40917f5000)
libgcc_s.so.1 =>