Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault on invalid script #16622

Open
p5pRT opened this issue Jul 12, 2018 · 6 comments
Open

Segfault on invalid script #16622

p5pRT opened this issue Jul 12, 2018 · 6 comments

Comments

@p5pRT
Copy link

p5pRT commented Jul 12, 2018

Migrated from rt.perl.org#133363 (status was 'open')

Searchable as RT133363$

@p5pRT
Copy link
Author

p5pRT commented Jul 12, 2018

From simon.woerner@rub.de

Created by simon.woerner@rub.de

Dear all,

the following crash was found by a modified version of the kAFL fuzzer
(https://github.com/RUB-SysSec/kAFL).

I have attached the crashing input and an ASAN output.
To reproduce the crash issue, execute perl5 with the crashing input as
script (perl <crashing_input>).

Credits​: Simon Wörner, Sergej Schumilo, Cornelius Aschermann (all of
Ruhr-Universität Bochum)

Best regards,
Simon Wörner

Perl Info

Flags:
    category=core
    severity=medium

Site configuration information for perl 5.26.1:

Configured by Ubuntu at Tue Jun 12 19:32:02 UTC 2018.

Summary of my perl5 (revision 5 version 26 subversion 1) configuration:
     Platform:
    osname=linux
    osvers=4.9.0
    archname=x86_64-linux-gnu-thread-multi
    uname='linux localhost 4.9.0 #1 smp debian 4.9.0 x86_64 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dcc=x86_64-linux-gnu-gcc
-Dcpp=x86_64-linux-gnu-cpp -Dld=x86_64-linux-gnu-gcc -Dccflags=-DDEBIAN
-Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
-fdebug-prefix-map=/build/perl-RO67EV/perl-5.26.1=.
-fstack-protector-strong -Wformat -Werror=format-security -Dldflags=
-Wl,-Bsymbolic-functions -Wl,-z,relro -Dlddlflags=-shared
-Wl,-Bsymbolic-functions -Wl,-z,relro -Dcccdlflags=-fPIC
-Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.26
-Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.26 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.26
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.26.1
-Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.26.1
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Duse64bitint
-Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs
-Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -Ui_xlocale
-Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -dEs -Duseshrplib
-Dlibperl=libperl.so.5.26.1'
    hint=recommended
    useposix=true
    d_sigaction=define
    useithreads=define
    usemultiplicity=define
    use64bitint=define
    use64bitall=define
    uselongdouble=undef
    usemymalloc=n
    default_inc_excludes_dot=define
    bincompat5005=undef
  Compiler:
    cc='x86_64-linux-gnu-gcc'
    ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64'
    optimize='-O2 -g'
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion=''
    gccversion='7.3.0'
    gccosandvers=''
    intsize=4
    longsize=8
    ptrsize=8
    doublesize=8
    byteorder=12345678
    doublekind=3
    d_longlong=define
    longlongsize=8
    d_longdbl=define
    longdblsize=16
    longdblkind=3
    ivtype='long'
    ivsize=8
    nvtype='double'
    nvsize=8
    Off_t='off_t'
    lseeksize=8
    alignbytes=8
    prototype=define
  Linker and Libraries:
    ld='x86_64-linux-gnu-gcc'
    ldflags =' -fstack-protector-strong -L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib
/usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=libc-2.27.so
    so=so
    useshrplib=true
    libperl=libperl.so.5.26
    gnulibc_version='2.27'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs
    dlext=so
    d_dlsymun=undef
    ccdlflags='-Wl,-E'
    cccdlflags='-fPIC'
    lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'

Locally applied patches:
    DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
    DEBPKG:debian/db_file_ver - https://bugs.debian.org/340047 Remove
overly restrictive DB_File version check.
    DEBPKG:debian/doc_info - Replace generic man(1) instructions with
Debian-specific information.
    DEBPKG:debian/enc2xs_inc - https://bugs.debian.org/290336 Tweak
enc2xs to follow symlinks and ignore missing @INC directories.
    DEBPKG:debian/errno_ver - https://bugs.debian.org/343351 Remove
Errno version check due to upgrade problems with long-running processes.
    DEBPKG:debian/libperl_embed_doc - https://bugs.debian.org/186778
Note that libperl-dev package is required for embedded linking
    DEBPKG:fixes/respect_umask - Respect umask during installation
    DEBPKG:debian/writable_site_dirs - Set umask approproately for site
install directories
    DEBPKG:debian/extutils_set_libperl_path - EU:MM: set location of
libperl.a under /usr/lib
    DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
    DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the
binary targets.
    DEBPKG:debian/instmodsh_doc - Debian policy doesn't install
.packlist files for core or vendor.
    DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as
per Debian policy.
    DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be writable.
    DEBPKG:debian/perlivp - https://bugs.debian.org/510895 Make perlivp
skip include directories in /usr/local
    DEBPKG:debian/deprecate-with-apt - https://bugs.debian.org/747628
Point users to Debian packages of deprecated core modules
    DEBPKG:debian/squelch-locale-warnings -
https://bugs.debian.org/508764 Squelch locale warnings in Debian package
maintainer scripts
    DEBPKG:debian/patchlevel - https://bugs.debian.org/567489 List
packaged patches for 5.26.1-6ubuntu0.1 in patchlevel.h
    DEBPKG:fixes/document_makemaker_ccflags -
https://bugs.debian.org/628522 [rt.cpan.org #68613] Document that
CCFLAGS should include $Config{ccflags}
    DEBPKG:debian/find_html2text - https://bugs.debian.org/640479
Configure CPAN::Distribution with correct name of html2text
    DEBPKG:debian/perl5db-x-terminal-emulator.patch -
https://bugs.debian.org/668490 Invoke x-terminal-emulator rather than
xterm in perl5db.pl
    DEBPKG:debian/cpan-missing-site-dirs -
https://bugs.debian.org/688842 Fix CPAN::FirstTime defaults with
nonexisting site dirs if a parent is writable
    DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790]
https://bugs.debian.org/587650 Memoize::Storable: respect 'nstore'
option not respected
    DEBPKG:debian/makemaker-pasthru - https://bugs.debian.org/758471
Pass LD settings through to subdirectories
    DEBPKG:debian/makemaker-manext - https://bugs.debian.org/247370 Make
EU::MakeMaker honour MANnEXT settings in generated manpage headers
    DEBPKG:debian/kfreebsd-softupdates - https://bugs.debian.org/796798
Work around Debian Bug#796798
    DEBPKG:fixes/autodie-scope - https://bugs.debian.org/798096 Fix a
scoping issue with "no autodie" and the "system" sub
    DEBPKG:fixes/memoize-pod - [rt.cpan.org #89441] Fix POD errors in
Memoize
    DEBPKG:debian/hurd-softupdates - https://bugs.debian.org/822735 Fix
t/op/stat.t failures on hurd
    DEBPKG:fixes/math_complex_doc_great_circle -
https://bugs.debian.org/697567 [rt.cpan.org #114104] Math::Trig: clarify
definition of great_circle_midpoint
    DEBPKG:fixes/math_complex_doc_see_also -
https://bugs.debian.org/697568 [rt.cpan.org #114105] Math::Trig: add
missing SEE ALSO
    DEBPKG:fixes/math_complex_doc_angle_units -
https://bugs.debian.org/731505 [rt.cpan.org #114106] Math::Trig:
document angle units
    DEBPKG:fixes/cpan_web_link - https://bugs.debian.org/367291 CPAN:
Add link to main CPAN web site
    DEBPKG:fixes/time_piece_doc - https://bugs.debian.org/817925
Time::Piece: Improve documentation for add_months and add_years
    DEBPKG:fixes/extutils_makemaker_reproducible -
https://bugs.debian.org/835815 https://bugs.debian.org/834190 Make
perllocal.pod files reproducible
    DEBPKG:fixes/file_path_hurd_errno - File-Path: Fix test failure in
Hurd due to hard-coded ENOENT
    DEBPKG:debian/hppa_op_optimize_workaround -
https://bugs.debian.org/838613 Temporarily lower the optimization of
op.c on hppa due to gcc-6 problems
    DEBPKG:debian/installman-utf8 - https://bugs.debian.org/840211
Generate man pages with UTF-8 characters
    DEBPKG:fixes/file_path_chmod_race - https://bugs.debian.org/863870
[rt.cpan.org #121951] Prevent directory chmod race attack.
    DEBPKG:fixes/extutils_file_path_compat - Correct the order of tests
of chmod(). (#294)
    DEBPKG:fixes/getopt-long-2 - [rt.cpan.org #120300] Withdraw part of
commit 5d9947fb445327c7299d8beb009d609bc70066c0, which tries to
implement more GNU getopt_long campatibility. GNU
    DEBPKG:fixes/getopt-long-3 - provide a default value for optional
arguments
    DEBPKG:fixes/getopt-long-4 - https://bugs.debian.org/864544
[rt.cpan.org #122068] Fix issue #122068.
    DEBPKG:fixes/test-builder-reset - https://bugs.debian.org/865894
Reset inside subtest maintains parent
    DEBPKG:debian/hppa_opmini_optimize_workaround -
https://bugs.debian.org/869122 Lower the optimization level of opmini.c
on hppa
    DEBPKG:debian/sh4_op_optimize_workaround -
https://bugs.debian.org/869373 Also lower the optimization level of op.c
and opmini.c on sh4
    DEBPKG:fixes/json-pp-example - [rt.cpan.org #92793]
https://bugs.debian.org/871837 fix RT-92793: bug in SYNOPSIS
    DEBPKG:debian/perldoc-pager - https://bugs.debian.org/870340
[rt.cpan.org #120229] Fix perldoc terminal escapes when sensible-pager
is less
    DEBPKG:debian/prune_libs - https://bugs.debian.org/128355 Prune the
list of libraries wanted to what we actually need.
    DEBPKG:debian/configure-regen - https://bugs.debian.org/762638
Regenerate Configure et al. after probe unit changes
    DEBPKG:fixes/rename-filexp.U-phase1 - regen-configure: rename
filexp.U to filexp_path.U, phase 1
    DEBPKG:fixes/rename-filexp.U-phase2 - regen-configure: rename
filexp.U to filexp_path.U, phase 2
    DEBPKG:fixes/packaging_test_skips - Skip various tests if
PERL_BUILD_PACKAGING is set
    DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
    DEBPKG:fixes/encode-alias-regexp - https://bugs.debian.org/880085
fix https://github.com/dankogai/p5-encode/issues/127
    DEBPKG:fixes/regex-memory-leak - [910a6a8]
https://bugs.debian.org/891196 [perl #132892] perl #132892: avoid leak
by mortalizing temporary copy of pattern
    DEBPKG:fixes/CVE-2018-6797 - [perl #132227] (perl #132227) restart a
node if we change to uni rules within the node and encounter a sharp S
    DEBPKG:fixes/CVE-2018-6798/pt1 - [perl #132063] Heap buffer overflow
    DEBPKG:fixes/CVE-2018-6798/pt2 - [perl #132063] 5.26.1: fix
TRIE_READ_CHAR and DECL_TRIE_TYPE to account for non-utf8 target
    DEBPKG:fixes/CVE-2018-6798/pt3 - [perl #132063] (perl #132063) we
should no longer warn for this code
    DEBPKG:fixes/CVE-2018-6798/pt4 - [perl #132063] utf8.c: Don't dump
malformation past first NUL
    DEBPKG:fixes/CVE-2018-6913 - [perl #131844] (perl #131844) fix
various space calculation issues in pp_pack.c
    DEBPKG:fixes/CVE-2018-12015.patch - [PATCH] [PATCH] Remove existing
files before overwriting them


@INC for perl 5.26.1:
    /etc/perl
    /usr/local/lib/x86_64-linux-gnu/perl/5.26.1
    /usr/local/share/perl/5.26.1
    /usr/lib/x86_64-linux-gnu/perl5/5.26
    /usr/share/perl5
    /usr/lib/x86_64-linux-gnu/perl/5.26
    /usr/share/perl/5.26
    /usr/local/lib/site_perl
    /usr/lib/x86_64-linux-gnu/perl-base


Environment for perl 5.26.1:
    HOME=/home/sww13
    LANG=en_US.UTF-8
    LANGUAGE (unset)
    LC_ALL=en_US.UTF-8
    LC_CTYPE=UTF-8
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)

PATH=/home/sww13/fuzz/grammfuzz/forksrv/instrument/clang_wrapper:/home/sww13/.cargo/bin:/home/sww13/fuzz/grammfuzz/forksrv/instrument/clang_wrapper:/home/sww13/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
    PERL_BADLANG (unset)
    SHELL=/bin/zsh

Complete configuration data for perl 5.26.1:

Author=''
CONFIG='true'
Date=''
Header=''
Id=''
Locker=''
Log=''
PATCHLEVEL='26'
PERL_API_REVISION='5'
PERL_API_SUBVERSION='0'
PERL_API_VERSION='26'
PERL_CONFIG_SH='true'
PERL_PATCHLEVEL=''
PERL_REVISION='5'
PERL_SUBVERSION='1'
PERL_VERSION='26'
RCSfile=''
Revision=''
SUBVERSION='1'
Source=''
State=''
_a='.a'
_exe=''
_o='.o'
afs='false'
afsroot='/afs'
alignbytes='8'
ansi2knr=''
aphostname='/bin/hostname'
api_revision='5'
api_subversion='0'
api_version='26'
api_versionstring='5.26.0'
ar='ar'
archlib='/usr/lib/x86_64-linux-gnu/perl/5.26'
archlibexp='/usr/lib/x86_64-linux-gnu/perl/5.26'
archname='x86_64-linux-gnu-thread-multi'
archname64=''
archobjs=''
asctime_r_proto='REENTRANT_PROTO_B_SB'
awk='awk'
baserev='5.0'
bash=''
bin='/usr/bin'
bin_ELF='define'
binexp='/usr/bin'
bison='bison'
byacc='byacc'
byteorder='12345678'
c=''
castflags='0'
cat='cat'
cc='x86_64-linux-gnu-gcc'
cccdlflags='-fPIC'
ccdlflags='-Wl,-E'
ccflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64'
ccflags_nolargefiles='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include '
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='gcc'
ccstdflags=' -std=c89'
ccsymbols=''
ccversion=''
ccwarnflags=' -Wall -Werror=declaration-after-statement -Wextra
-Wc++-compat -Wwrite-strings'
cf_by='Ubuntu'
cf_email='perl@packages.debian.org'
cf_time='Tue Jun 12 19:32:02 UTC 2018'
charbits='8'
charsize='1'
chgrp=''
chmod='chmod'
chown=''
clocktype='clock_t'
comm='comm'
compress=''
config_arg0='Configure'
config_arg1='-Dusethreads'
config_arg10='-Darchname=x86_64-linux-gnu'
config_arg11='-Dprefix=/usr'
config_arg12='-Dprivlib=/usr/share/perl/5.26'
config_arg13='-Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.26'
config_arg14='-Dvendorprefix=/usr'
config_arg15='-Dvendorlib=/usr/share/perl5'
config_arg16='-Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.26'
config_arg17='-Dsiteprefix=/usr/local'
config_arg18='-Dsitelib=/usr/local/share/perl/5.26.1'
config_arg19='-Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.26.1'
config_arg2='-Duselargefiles'
config_arg20='-Dman1dir=/usr/share/man/man1'
config_arg21='-Dman3dir=/usr/share/man/man3'
config_arg22='-Dsiteman1dir=/usr/local/man/man1'
config_arg23='-Dsiteman3dir=/usr/local/man/man3'
config_arg24='-Duse64bitint'
config_arg25='-Dman1ext=1'
config_arg26='-Dman3ext=3perl'
config_arg27='-Dpager=/usr/bin/sensible-pager'
config_arg28='-Uafs'
config_arg29='-Ud_csh'
config_arg3='-Dcc=x86_64-linux-gnu-gcc'
config_arg30='-Ud_ualarm'
config_arg31='-Uusesfio'
config_arg32='-Uusenm'
config_arg33='-Ui_libutil'
config_arg34='-Ui_xlocale'
config_arg35='-Uversiononly'
config_arg36='-DDEBUGGING=-g'
config_arg37='-Doptimize=-O2'
config_arg38='-dEs'
config_arg39='-Duseshrplib'
config_arg4='-Dcpp=x86_64-linux-gnu-cpp'
config_arg40='-Dlibperl=libperl.so.5.26.1'
config_arg5='-Dld=x86_64-linux-gnu-gcc'
config_arg6='-Dccflags=-DDEBIAN -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
-fdebug-prefix-map=/build/perl-RO67EV/perl-5.26.1=.
-fstack-protector-strong -Wformat -Werror=format-security'
config_arg7='-Dldflags= -Wl,-Bsymbolic-functions -Wl,-z,relro'
config_arg8='-Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro'
config_arg9='-Dcccdlflags=-fPIC'
config_argc='40'
config_args='-Dusethreads -Duselargefiles -Dcc=x86_64-linux-gnu-gcc
-Dcpp=x86_64-linux-gnu-cpp -Dld=x86_64-linux-gnu-gcc -Dccflags=-DDEBIAN
-Wdate-time -D_FORTIFY_SOURCE=2 -g -O2
-fdebug-prefix-map=/build/perl-RO67EV/perl-5.26.1=.
-fstack-protector-strong -Wformat -Werror=format-security -Dldflags=
-Wl,-Bsymbolic-functions -Wl,-z,relro -Dlddlflags=-shared
-Wl,-Bsymbolic-functions -Wl,-z,relro -Dcccdlflags=-fPIC
-Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.26
-Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.26 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.26
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.26.1
-Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.26.1
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Duse64bitint
-Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs
-Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -Ui_xlocale
-Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -dEs -Duseshrplib
-Dlibperl=libperl.so.5.26.1'
contains='grep'
cp='cp'
cpio=''
cpp='x86_64-linux-gnu-cpp'
cpp_stuff='42'
cppccsymbols=''
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include'
cpplast='-'
cppminus='-'
cpprun='x86_64-linux-gnu-gcc  -E'
cppstdin='x86_64-linux-gnu-gcc	-E'
cppsymbols='_FILE_OFFSET_BITS=64 _FORTIFY_SOURCE=2 _GNU_SOURCE=1
_LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 _LP64=1
_POSIX_C_SOURCE=200809L _POSIX_SOURCE=1 _REENTRANT=1 _STDC_PREDEF_H=1
_XOPEN_SOURCE=700 _XOPEN_SOURCE_EXTENDED=1 __ATOMIC_ACQUIRE=2
__ATOMIC_ACQ_REL=4 __ATOMIC_CONSUME=1 __ATOMIC_HLE_ACQUIRE=65536
__ATOMIC_HLE_RELEASE=131072 __ATOMIC_RELAXED=0 __ATOMIC_RELEASE=3
__ATOMIC_SEQ_CST=5 __BIGGEST_ALIGNMENT__=16 __BYTE_ORDER__=1234
__CHAR16_TYPE__=short\ unsigned\ int __CHAR32_TYPE__=unsigned\ int
__CHAR_BIT__=8 __DBL_DECIMAL_DIG__=17
__DBL_DENORM_MIN__=((double)4.94065645841246544176568792868221372e-324L)
__DBL_DIG__=15
__DBL_EPSILON__=((double)2.22044604925031308084726333618164062e-16L)
__DBL_HAS_DENORM__=1 __DBL_HAS_INFINITY__=1 __DBL_HAS_QUIET_NAN__=1
__DBL_MANT_DIG__=53 __DBL_MAX_10_EXP__=308 __DBL_MAX_EXP__=1024
__DBL_MAX__=((double)1.79769313486231570814527423731704357e+308L)
__DBL_MIN_10_EXP__=(-307) __DBL_MIN_EXP__=(-1021)
__DBL_MIN__=((double)2.22507385850720138309023271733240406e-308L)
__DEC128_EPSILON__=1E-33DL __DEC128_MANT_DIG__=34
__DEC128_MAX_EXP__=6145
__DEC128_MAX__=9.999999999999999999999999999999999E6144DL
__DEC128_MIN_EXP__=(-6142) __DEC128_MIN__=1E-6143DL
__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL
__DEC32_EPSILON__=1E-6DF __DEC32_MANT_DIG__=7 __DEC32_MAX_EXP__=97
__DEC32_MAX__=9.999999E96DF __DEC32_MIN_EXP__=(-94)
__DEC32_MIN__=1E-95DF __DEC32_SUBNORMAL_MIN__=0.000001E-95DF
__DEC64_EPSILON__=1E-15DD __DEC64_MANT_DIG__=16 __DEC64_MAX_EXP__=385
__DEC64_MAX__=9.999999999999999E384DD __DEC64_MIN_EXP__=(-382)
__DEC64_MIN__=1E-383DD __DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD
__DECIMAL_BID_FORMAT__=1 __DECIMAL_DIG__=21 __DEC_EVAL_METHOD__=2 __ELF__=1
__FINITE_MATH_ONLY__=0 __FLOAT_WORD_ORDER__=1234
__FLT128_DECIMAL_DIG__=36
__FLT128_DENORM_MIN__=6.47517511943802511092443895822764655e-4966F128
__FLT128_DIG__=33
__FLT128_EPSILON__=1.92592994438723585305597794258492732e-34F128
__FLT128_HAS_DENORM__=1 __FLT128_HAS_INFINITY__=1
__FLT128_HAS_QUIET_NAN__=1 __FLT128_MANT_DIG__=113
__FLT128_MAX_10_EXP__=4932 __FLT128_MAX_EXP__=16384
__FLT128_MAX__=1.18973149535723176508575932662800702e+4932F128
__FLT128_MIN_10_EXP__=(-4931) __FLT128_MIN_EXP__=(-16381)
__FLT128_MIN__=3.36210314311209350626267781732175260e-4932F128
__FLT32X_DECIMAL_DIG__=17
__FLT32X_DENORM_MIN__=4.94065645841246544176568792868221372e-324F32x
__FLT32X_DIG__=15
__FLT32X_EPSILON__=2.22044604925031308084726333618164062e-16F32x
__FLT32X_HAS_DENORM__=1 __FLT32X_HAS_INFINITY__=1
__FLT32X_HAS_QUIET_NAN__=1 __FLT32X_MANT_DIG__=53
__FLT32X_MAX_10_EXP__=308 __FLT32X_MAX_EXP__=1024
__FLT32X_MAX__=1.79769313486231570814527423731704357e+308F32x
__FLT32X_MIN_10_EXP__=(-307) __FLT32X_MIN_EXP__=(-1021)
__FLT32X_MIN__=2.22507385850720138309023271733240406e-308F32x
__FLT32_DECIMAL_DIG__=9
__FLT32_DENORM_MIN__=1.40129846432481707092372958328991613e-45F32
__FLT32_DIG__=6
__FLT32_EPSILON__=1.19209289550781250000000000000000000e-7F32
__FLT32_HAS_DENORM__=1 __FLT32_HAS_INFINITY__=1
__FLT32_HAS_QUIET_NAN__=1 __FLT32_MANT_DIG__=24 __FLT32_MAX_10_EXP__=38
__FLT32_MAX_EXP__=128
__FLT32_MAX__=3.40282346638528859811704183484516925e+38F32
__FLT32_MIN_10_EXP__=(-37) __FLT32_MIN_EXP__=(-125)
__FLT32_MIN__=1.17549435082228750796873653722224568e-38F32
__FLT64X_DECIMAL_DIG__=21
__FLT64X_DENORM_MIN__=3.64519953188247460252840593361941982e-4951F64x
__FLT64X_DIG__=18
__FLT64X_EPSILON__=1.08420217248550443400745280086994171e-19F64x
__FLT64X_HAS_DENORM__=1 __FLT64X_HAS_INFINITY__=1
__FLT64X_HAS_QUIET_NAN__=1 __FLT64X_MANT_DIG__=64
__FLT64X_MAX_10_EXP__=4932 __FLT64X_MAX_EXP__=16384
__FLT64X_MAX__=1.18973149535723176502126385303097021e+4932F64x
__FLT64X_MIN_10_EXP__=(-4931) __FLT64X_MIN_EXP__=(-16381)
__FLT64X_MIN__=3.36210314311209350626267781732175260e-4932F64x
__FLT64_DECIMAL_DIG__=17
__FLT64_DENORM_MIN__=4.94065645841246544176568792868221372e-324F64
__FLT64_DIG__=15
__FLT64_EPSILON__=2.22044604925031308084726333618164062e-16F64
__FLT64_HAS_DENORM__=1 __FLT64_HAS_INFINITY__=1
__FLT64_HAS_QUIET_NAN__=1 __FLT64_MANT_DIG__=53 __FLT64_MAX_10_EXP__=308
__FLT64_MAX_EXP__=1024
__FLT64_MAX__=1.79769313486231570814527423731704357e+308F64
__FLT64_MIN_10_EXP__=(-307) __FLT64_MIN_EXP__=(-1021)
__FLT64_MIN__=2.22507385850720138309023271733240406e-308F64
__FLT_DECIMAL_DIG__=9
__FLT_DENORM_MIN__=1.40129846432481707092372958328991613e-45F __FLT_DIG__=6
__FLT_EPSILON__=1.19209289550781250000000000000000000e-7F
__FLT_EVAL_METHOD_TS_18661_3__=0 __FLT_EVAL_METHOD__=0
__FLT_HAS_DENORM__=1 __FLT_HAS_INFINITY__=1 __FLT_HAS_QUIET_NAN__=1
__FLT_MANT_DIG__=24 __FLT_MAX_10_EXP__=38 __FLT_MAX_EXP__=128
__FLT_MAX__=3.40282346638528859811704183484516925e+38F
__FLT_MIN_10_EXP__=(-37) __FLT_MIN_EXP__=(-125)
__FLT_MIN__=1.17549435082228750796873653722224568e-38F __FLT_RADIX__=2
__FXSR__=1 __GCC_ASM_FLAG_OUTPUTS__=1 __GCC_ATOMIC_BOOL_LOCK_FREE=2
__GCC_ATOMIC_CHAR16_T_LOCK_FREE=2 __GCC_ATOMIC_CHAR32_T_LOCK_FREE=2
__GCC_ATOMIC_CHAR_LOCK_FREE=2 __GCC_ATOMIC_INT_LOCK_FREE=2
__GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_ATOMIC_LONG_LOCK_FREE=2
__GCC_ATOMIC_POINTER_LOCK_FREE=2 __GCC_ATOMIC_SHORT_LOCK_FREE=2
__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1 __GCC_ATOMIC_WCHAR_T_LOCK_FREE=2
__GCC_HAVE_DWARF2_CFI_ASM=1 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1=1
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2=1
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4=1
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __GCC_IEC_559=2
__GCC_IEC_559_COMPLEX=2 __GLIBC_MINOR__=27 __GLIBC__=2 __GNUC_MINOR__=3
__GNUC_PATCHLEVEL__=0 __GNUC_STDC_INLINE__=1 __GNUC__=7
__GNU_LIBRARY__=6 __GXX_ABI_VERSION=1011 __INT16_C=__INT16_C
__INT16_MAX__=0x7fff __INT16_TYPE__=short\ int __INT32_C=__INT32_C
__INT32_MAX__=0x7fffffff __INT32_TYPE__=int __INT64_C=__INT64_C
__INT64_MAX__=0x7fffffffffffffffL __INT64_TYPE__=long\ int
__INT8_C=__INT8_C __INT8_MAX__=0x7f __INT8_TYPE__=signed\ char
__INTMAX_C=__INTMAX_C __INTMAX_MAX__=0x7fffffffffffffffL
__INTMAX_TYPE__=long\ int __INTMAX_WIDTH__=64
__INTPTR_MAX__=0x7fffffffffffffffL __INTPTR_TYPE__=long\ int
__INTPTR_WIDTH__=64 __INT_FAST16_MAX__=0x7fffffffffffffffL
__INT_FAST16_TYPE__=long\ int __INT_FAST16_WIDTH__=64
__INT_FAST32_MAX__=0x7fffffffffffffffL
__INT_FAST32_TYPE__=long\ int __INT_FAST32_WIDTH__=64
__INT_FAST64_MAX__=0x7fffffffffffffffL __INT_FAST64_TYPE__=long\ int
__INT_FAST64_WIDTH__=64 __INT_FAST8_MAX__=0x7f
__INT_FAST8_TYPE__=signed\ char __INT_FAST8_WIDTH__=8
__INT_LEAST16_MAX__=0x7fff __INT_LEAST16_TYPE__=short\ int
__INT_LEAST16_WIDTH__=16 __INT_LEAST32_MAX__=0x7fffffff
__INT_LEAST32_TYPE__=int __INT_LEAST32_WIDTH__=32
__INT_LEAST64_MAX__=0x7fffffffffffffffL __INT_LEAST64_TYPE__=long\ int
__INT_LEAST64_WIDTH__=64 __INT_LEAST8_MAX__=0x7f
__INT_LEAST8_TYPE__=signed\ char __INT_LEAST8_WIDTH__=8
__INT_MAX__=0x7fffffff __INT_WIDTH__=32 __LDBL_DECIMAL_DIG__=21
__LDBL_DENORM_MIN__=3.64519953188247460252840593361941982e-4951L
__LDBL_DIG__=18
__LDBL_EPSILON__=1.08420217248550443400745280086994171e-19L
__LDBL_HAS_DENORM__=1 __LDBL_HAS_INFINITY__=1 __LDBL_HAS_QUIET_NAN__=1
__LDBL_MANT_DIG__=64 __LDBL_MAX_10_EXP__=4932
__LDBL_MAX_EXP__=16384
__LDBL_MAX__=1.18973149535723176502126385303097021e+4932L
__LDBL_MIN_10_EXP__=(-4931) __LDBL_MIN_EXP__=(-16381)
__LDBL_MIN__=3.36210314311209350626267781732175260e-4932L
__LONG_LONG_MAX__=0x7fffffffffffffffLL __LONG_LONG_WIDTH__=64
__LONG_MAX__=0x7fffffffffffffffL __LONG_WIDTH__=64 __LP64__=1 __MMX__=1
__ORDER_BIG_ENDIAN__=4321 __ORDER_LITTLE_ENDIAN__=1234
__ORDER_PDP_ENDIAN__=3412 __PIC__=2 __PIE__=2
__PRAGMA_REDEFINE_EXTNAME=1 __PTRDIFF_MAX__=0x7fffffffffffffffL
__PTRDIFF_TYPE__=long\ int __PTRDIFF_WIDTH__=64 __REGISTER_PREFIX__=
__SCHAR_MAX__=0x7f __SCHAR_WIDTH__=8 __SEG_FS=1 __SEG_GS=1
__SHRT_MAX__=0x7fff __SHRT_WIDTH__=16 __SIG_ATOMIC_MAX__=0x7fffffff
__SIG_ATOMIC_MIN__=(-0x7fffffff\ -\ 1) __SIG_ATOMIC_TYPE__=int
__SIG_ATOMIC_WIDTH__=32 __SIZEOF_DOUBLE__=8 __SIZEOF_FLOAT128__=16
__SIZEOF_FLOAT80__=16 __SIZEOF_FLOAT__=4 __SIZEOF_INT128__=16
__SIZEOF_INT__=4
__SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG_LONG__=8 __SIZEOF_LONG__=8
__SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SHORT__=2
__SIZEOF_SIZE_T__=8 __SIZEOF_WCHAR_T__=4 __SIZEOF_WINT_T__=4
__SIZE_MAX__=0xffffffffffffffffUL __SIZE_TYPE__=long\ unsigned\ int
__SIZE_WIDTH__=64 __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1
__SSP_STRONG__=3 __STDC_HOSTED__=1 __STDC_IEC_559_COMPLEX__=1
__STDC_IEC_559__=1 __STDC_ISO_10646__=201706L __STDC_NO_THREADS__=1
__STDC_UTF_16__=1 __STDC_UTF_32__=1 __STDC_VERSION__=201112L __STDC__=1
__UINT16_C=__UINT16_C __UINT16_MAX__=0xffff __UINT16_TYPE__=short\
unsigned\ int __UINT32_C=__UINT32_C __UINT32_MAX__=0xffffffffU
__UINT32_TYPE__=unsigned\ int __UINT64_C=__UINT64_C
__UINT64_MAX__=0xffffffffffffffffUL __UINT64_TYPE__=long\ unsigned\ int
__UINT8_C=__UINT8_C __UINT8_MAX__=0xff __UINT8_TYPE__=unsigned\ char
__UINTMAX_C=__UINTMAX_C
__UINTMAX_MAX__=0xffffffffffffffffUL __UINTMAX_TYPE__=long\ unsigned\
int __UINTPTR_MAX__=0xffffffffffffffffUL __UINTPTR_TYPE__=long\
unsigned\ int __UINT_FAST16_MAX__=0xffffffffffffffffUL
__UINT_FAST16_TYPE__=long\ unsigned\ int
__UINT_FAST32_MAX__=0xffffffffffffffffUL __UINT_FAST32_TYPE__=long\
unsigned\ int __UINT_FAST64_MAX__=0xffffffffffffffffUL
__UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_FAST8_MAX__=0xff
__UINT_FAST8_TYPE__=unsigned\ char __UINT_LEAST16_MAX__=0xffff
__UINT_LEAST16_TYPE__=short\ unsigned\ int
__UINT_LEAST32_MAX__=0xffffffffU __UINT_LEAST32_TYPE__=unsigned\ int
__UINT_LEAST64_MAX__=0xffffffffffffffffUL __UINT_LEAST64_TYPE__=long\
unsigned\ int __UINT_LEAST8_MAX__=0xff __UINT_LEAST8_TYPE__=unsigned\
char __USER_LABEL_PREFIX__= __USE_FILE_OFFSET64=1 __USE_GNU=1
__USE_LARGEFILE64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX199309=1
__USE_POSIX199506=1
__USE_POSIX2=1 __USE_POSIX=1 __USE_UNIX98=1 __USE_XOPEN=1
__USE_XOPEN_EXTENDED=1 __VERSION__="7.3.0" __WCHAR_MAX__=0x7fffffff
__WCHAR_MIN__=(-0x7fffffff\ -\ 1) __WCHAR_TYPE__=int __WCHAR_WIDTH__=32
__WINT_MAX__=0xffffffffU __WINT_MIN__=0U __WINT_TYPE__=unsigned\ int
__WINT_WIDTH__=32 __amd64=1 __amd64__=1 __code_model_small__=1
__gnu_linux__=1 __has_include=__has_include
__has_include_next=__has_include_next __k8=1 __k8__=1 __linux=1
__linux__=1 __pic__=2 __pie__=2 __unix=1 __unix__=1 __x86_64=1
__x86_64__=1 linux=1 unix=1'
crypt_r_proto='REENTRANT_PROTO_B_CCS'
cryptlib=''
csh='csh'
ctermid_r_proto='0'
ctime_r_proto='REENTRANT_PROTO_B_SB'
d_Gconvert='gcvt((x),(n),(b))'
d_PRIEUldbl='define'
d_PRIFUldbl='define'
d_PRIGUldbl='define'
d_PRIXU64='define'
d_PRId64='define'
d_PRIeldbl='define'
d_PRIfldbl='define'
d_PRIgldbl='define'
d_PRIi64='define'
d_PRIo64='define'
d_PRIu64='define'
d_PRIx64='define'
d_SCNfldbl='define'
d__fwalk=''
d_access='define'
d_accessx=''
d_acosh='define'
d_aintl=''
d_alarm='define'
d_archlib='define'
d_asctime64=''
d_asctime_r='define'
d_asinh='define'
d_atanh='define'
d_atolf=''
d_atoll='define'
d_attribute_deprecated='define'
d_attribute_format='define'
d_attribute_malloc='define'
d_attribute_nonnull='define'
d_attribute_noreturn='define'
d_attribute_pure='define'
d_attribute_unused='define'
d_attribute_warn_unused_result='define'
d_backtrace='define'
d_bcmp='define'
d_bcopy='define'
d_bsd=''
d_bsdgetpgrp=''
d_bsdsetpgrp=''
d_builtin_choose_expr='define'
d_builtin_expect='define'
d_bzero='define'
d_c99_variadic_macros='define'
d_casti32=''
d_castneg='define'
d_cbrt='define'
d_charvspr=''
d_chown='define'
d_chroot='define'
d_chsize=''
d_class=''
d_clearenv='define'
d_closedir='define'
d_cmsghdr_s='define'
d_const='define'
d_copysign='define'
d_copysignl='define'
d_cplusplus=''
d_crypt='define'
d_crypt_r='define'
d_csh=''
d_ctermid='define'
d_ctermid_r=''
d_ctime64=''
d_ctime_r='define'
d_cuserid='define'
d_dbl_dig='define'
d_dbminitproto='define'
d_difftime='define'
d_difftime64=''
d_dir_dd_fd=''
d_dirfd='define'
d_dirnamlen=''
d_dladdr='define'
d_dlerror='define'
d_dlopen='define'
d_dlsymun=''
d_dosuid=''
d_double_has_inf='define'
d_double_has_nan='define'
d_double_has_negative_zero='define'
d_double_has_subnormals='define'
d_double_style_cray=''
d_double_style_ibm=''
d_double_style_ieee='define'
d_double_style_vax=''
d_drand48_r='define'
d_drand48proto='define'
d_dup2='define'
d_duplocale='define'
d_eaccess='define'
d_endgrent='define'
d_endgrent_r=''
d_endhent='define'
d_endhostent_r=''
d_endnent='define'
d_endnetent_r=''
d_endpent='define'
d_endprotoent_r=''
d_endpwent='define'
d_endpwent_r=''
d_endsent='define'
d_endservent_r=''
d_eofnblk='define'
d_erf='define'
d_erfc='define'
d_eunice=''
d_exp2='define'
d_expm1='define'
d_faststdio=''
d_fchdir='define'
d_fchmod='define'
d_fchown='define'
d_fcntl='define'
d_fcntl_can_lock='define'
d_fd_macros='define'
d_fd_set='define'
d_fdclose=''
d_fdim='define'
d_fds_bits='define'
d_fegetround='define'
d_fgetpos='define'
d_finite='define'
d_finitel='define'
d_flexfnam='define'
d_flock='define'
d_flockproto='define'
d_fma='define'
d_fmax='define'
d_fmin='define'
d_fork='define'
d_fp_class=''
d_fp_classify=''
d_fp_classl=''
d_fpathconf='define'
d_fpclass=''
d_fpclassify='define'
d_fpclassl=''
d_fpgetround=''
d_fpos64_t=''
d_freelocale='define'
d_frexpl='define'
d_fs_data_s=''
d_fseeko='define'
d_fsetpos='define'
d_fstatfs='define'
d_fstatvfs='define'
d_fsync='define'
d_ftello='define'
d_ftime=''
d_futimes='define'
d_gai_strerror='define'
d_gdbm_ndbm_h_uses_prototypes='define'
d_gdbmndbm_h_uses_prototypes=''
d_getaddrinfo='define'
d_getcwd='define'
d_getespwnam=''
d_getfsstat=''
d_getgrent='define'
d_getgrent_r='define'
d_getgrgid_r='define'
d_getgrnam_r='define'
d_getgrps='define'
d_gethbyaddr='define'
d_gethbyname='define'
d_gethent='define'
d_gethname='define'
d_gethostbyaddr_r='define'
d_gethostbyname_r='define'
d_gethostent_r='define'
d_gethostprotos='define'
d_getitimer='define'
d_getlogin='define'
d_getlogin_r='define'
d_getmnt=''
d_getmntent='define'
d_getnameinfo='define'
d_getnbyaddr='define'
d_getnbyname='define'
d_getnent='define'
d_getnetbyaddr_r='define'
d_getnetbyname_r='define'
d_getnetent_r='define'
d_getnetprotos='define'
d_getpagsz='define'
d_getpbyname='define'
d_getpbynumber='define'
d_getpent='define'
d_getpgid='define'
d_getpgrp='define'
d_getpgrp2=''
d_getppid='define'
d_getprior='define'
d_getprotobyname_r='define'
d_getprotobynumber_r='define'
d_getprotoent_r='define'
d_getprotoprotos='define'
d_getprpwnam=''
d_getpwent='define'
d_getpwent_r='define'
d_getpwnam_r='define'
d_getpwuid_r='define'
d_getsbyname='define'
d_getsbyport='define'
d_getsent='define'
d_getservbyname_r='define'
d_getservbyport_r='define'
d_getservent_r='define'
d_getservprotos='define'
d_getspnam='define'
d_getspnam_r='define'
d_gettimeod='define'
d_gmtime64=''
d_gmtime_r='define'
d_gnulibc='define'
d_grpasswd='define'
d_hasmntopt='define'
d_htonl='define'
d_hypot='define'
d_ilogb='define'
d_ilogbl='define'
d_inc_version_list='define'
d_index=''
d_inetaton='define'
d_inetntop='define'
d_inetpton='define'
d_int64_t='define'
d_ip_mreq='define'
d_ip_mreq_source='define'
d_ipv6_mreq='define'
d_ipv6_mreq_source=''
d_isascii='define'
d_isblank='define'
d_isfinite='define'
d_isfinitel=''
d_isinf='define'
d_isinfl='define'
d_isless=''
d_isnan='define'
d_isnanl='define'
d_isnormal='define'
d_j0='define'
d_j0l='define'
d_killpg='define'
d_lc_monetary_2008='define'
d_lchown='define'
d_ldbl_dig='define'
d_ldexpl='define'
d_lgamma='define'
d_lgamma_r='define'
d_libm_lib_version=''
d_libname_unique=''
d_link='define'
d_llrint='define'
d_llrintl='define'
d_llround='define'
d_llroundl='define'
d_localtime64=''
d_localtime_r='define'
d_localtime_r_needs_tzset='define'
d_locconv='define'
d_lockf='define'
d_log1p='define'
d_log2='define'
d_logb='define'
d_long_double_style_ieee='define'
d_long_double_style_ieee_doubledouble=''
d_long_double_style_ieee_extended='define'
d_long_double_style_ieee_std=''
d_long_double_style_vax=''
d_longdbl='define'
d_longlong='define'
d_lrint='define'
d_lrintl='define'
d_lround='define'
d_lroundl='define'
d_lseekproto='define'
d_lstat='define'
d_madvise='define'
d_malloc_good_size=''
d_malloc_size=''
d_mblen='define'
d_mbstowcs='define'
d_mbtowc='define'
d_memchr='define'
d_memcmp='define'
d_memcpy='define'
d_memmem='define'
d_memmove='define'
d_memset='define'
d_mkdir='define'
d_mkdtemp='define'
d_mkfifo='define'
d_mkstemp='define'
d_mkstemps='define'
d_mktime='define'
d_mktime64=''
d_mmap='define'
d_modfl='define'
d_modflproto='define'
d_mprotect='define'
d_msg='define'
d_msg_ctrunc='define'
d_msg_dontroute='define'
d_msg_oob='define'
d_msg_peek='define'
d_msg_proxy='define'
d_msgctl='define'
d_msgget='define'
d_msghdr_s='define'
d_msgrcv='define'
d_msgsnd='define'
d_msync='define'
d_munmap='define'
d_mymalloc=''
d_nan='define'
d_ndbm='define'
d_ndbm_h_uses_prototypes='define'
d_nearbyint='define'
d_newlocale='define'
d_nextafter='define'
d_nexttoward='define'
d_nice='define'
d_nl_langinfo='define'
d_nv_preserves_uv=''
d_nv_zero_is_allbits_zero='define'
d_off64_t='define'
d_old_pthread_create_joinable=''
d_oldpthreads=''
d_oldsock=''
d_open3='define'
d_pathconf='define'
d_pause='define'
d_perl_otherlibdirs=''
d_phostname=''
d_pipe='define'
d_poll='define'
d_portable='define'
d_prctl='define'
d_prctl_set_name='define'
d_printf_format_null=''
d_procselfexe='define'
d_pseudofork=''
d_pthread_atfork='define'
d_pthread_attr_setscope='define'
d_pthread_yield='define'
d_ptrdiff_t='define'
d_pwage=''
d_pwchange=''
d_pwclass=''
d_pwcomment=''
d_pwexpire=''
d_pwgecos='define'
d_pwpasswd='define'
d_pwquota=''
d_qgcvt='define'
d_quad='define'
d_querylocale=''
d_random_r='define'
d_re_comp=''
d_readdir='define'
d_readdir64_r='define'
d_readdir_r='define'
d_readlink='define'
d_readv='define'
d_recvmsg='define'
d_regcmp=''
d_regcomp='define'
d_remainder='define'
d_remquo='define'
d_rename='define'
d_rewinddir='define'
d_rint='define'
d_rmdir='define'
d_round='define'
d_safebcpy=''
d_safemcpy=''
d_sanemcmp='define'
d_sbrkproto='define'
d_scalbn='define'
d_scalbnl='define'
d_sched_yield='define'
d_scm_rights='define'
d_seekdir='define'
d_select='define'
d_sem='define'
d_semctl='define'
d_semctl_semid_ds='define'
d_semctl_semun='define'
d_semget='define'
d_semop='define'
d_sendmsg='define'
d_setegid='define'
d_seteuid='define'
d_setgrent='define'
d_setgrent_r=''
d_setgrps='define'
d_sethent='define'
d_sethostent_r=''
d_setitimer='define'
d_setlinebuf='define'
d_setlocale='define'
d_setlocale_r=''
d_setnent='define'
d_setnetent_r=''
d_setpent='define'
d_setpgid='define'
d_setpgrp='define'
d_setpgrp2=''
d_setprior='define'
d_setproctitle=''
d_setprotoent_r=''
d_setpwent='define'
d_setpwent_r=''
d_setregid='define'
d_setresgid='define'
d_setresuid='define'
d_setreuid='define'
d_setrgid=''
d_setruid=''
d_setsent='define'
d_setservent_r=''
d_setsid='define'
d_setvbuf='define'
d_shm='define'
d_shmat='define'
d_shmatprototype='define'
d_shmctl='define'
d_shmdt='define'
d_shmget='define'
d_sigaction='define'
d_siginfo_si_addr='define'
d_siginfo_si_band='define'
d_siginfo_si_errno='define'
d_siginfo_si_fd='define'
d_siginfo_si_pid='define'
d_siginfo_si_status='define'
d_siginfo_si_uid='define'
d_siginfo_si_value='define'
d_signbit='define'
d_sigprocmask='define'
d_sigsetjmp='define'
d_sin6_scope_id='define'
d_sitearch='define'
d_snprintf='define'
d_sockaddr_in6='define'
d_sockaddr_sa_len=''
d_sockatmark='define'
d_sockatmarkproto='define'
d_socket='define'
d_socklen_t='define'
d_sockpair='define'
d_socks5_init=''
d_sprintf_returns_strlen='define'
d_sqrtl='define'
d_srand48_r='define'
d_srandom_r='define'
d_sresgproto='define'
d_sresuproto='define'
d_stat='define'
d_statblks='define'
d_statfs_f_flags='define'
d_statfs_s='define'
d_static_inline='define'
d_statvfs='define'
d_stdio_cnt_lval=''
d_stdio_ptr_lval=''
d_stdio_ptr_lval_nochange_cnt=''
d_stdio_ptr_lval_sets_cnt=''
d_stdio_stream_array=''
d_stdiobase=''
d_stdstdio=''
d_strchr='define'
d_strcoll='define'
d_strctcpy='define'
d_strerrm='strerror(e)'
d_strerror='define'
d_strerror_l='define'
d_strerror_r='define'
d_strftime='define'
d_strlcat=''
d_strlcpy=''
d_strtod='define'
d_strtol='define'
d_strtold='define'
d_strtoll='define'
d_strtoq='define'
d_strtoul='define'
d_strtoull='define'
d_strtouq='define'
d_strxfrm='define'
d_suidsafe=''
d_symlink='define'
d_syscall='define'
d_syscallproto='define'
d_sysconf='define'
d_sysernlst=''
d_syserrlst='define'
d_system='define'
d_tcgetpgrp='define'
d_tcsetpgrp='define'
d_telldir='define'
d_telldirproto='define'
d_tgamma='define'
d_time='define'
d_timegm='define'
d_times='define'
d_tm_tm_gmtoff='define'
d_tm_tm_zone='define'
d_tmpnam_r='define'
d_trunc='define'
d_truncate='define'
d_truncl='define'
d_ttyname_r='define'
d_tzname='define'
d_u32align='define'
d_ualarm=''
d_umask='define'
d_uname='define'
d_union_semun=''
d_unordered=''
d_unsetenv='define'
d_uselocale='define'
d_usleep='define'
d_usleepproto='define'
d_ustat='define'
d_vendorarch='define'
d_vendorbin='define'
d_vendorlib='define'
d_vendorscript='define'
d_vfork=''
d_void_closedir=''
d_voidsig='define'
d_voidtty=''
d_volatile='define'
d_vprintf='define'
d_vsnprintf='define'
d_wait4='define'
d_waitpid='define'
d_wcscmp='define'
d_wcstombs='define'
d_wcsxfrm='define'
d_wctomb='define'
d_writev='define'
d_xenix=''
date='date'
db_hashtype='u_int32_t'
db_prefixtype='size_t'
db_version_major='5'
db_version_minor='3'
db_version_patch='28'
default_inc_excludes_dot='define'
direntrytype='struct dirent'
dlext='so'
dlsrc='dl_dlopen.xs'
doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'
doublekind='3'
doublemantbits='52'
doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff'
doublesize='8'
drand01='Perl_drand48()'
drand48_r_proto='REENTRANT_PROTO_I_ST'
dtrace=''
dtraceobject=''
dtracexnolibs=''
dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File
Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl
File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util
Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64
Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding
PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable
Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece
Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase
attributes mro re threads threads/shared'
eagain='EAGAIN'
ebcdic=''
echo='echo'
egrep='egrep'
emacs=''
endgrent_r_proto='0'
endhostent_r_proto='0'
endnetent_r_proto='0'
endprotoent_r_proto='0'
endpwent_r_proto='0'
endservent_r_proto='0'
eunicefix=':'
exe_ext=''
expr='expr'
extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File
Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl
File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util
Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64
Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding
PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable
Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece
Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase
attributes mro re threads threads/shared Archive/Tar Attribute/Handlers
AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML
Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter
ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker
ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch
File/Find File/Path
File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate
I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP
Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt
Math/BigRat Math/Complex Memoize Module/CoreList Module/Load
Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping
Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes
Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe
Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete
Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced
Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File
Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum
constant encoding/warnings experimental if lib libnet parent perlfaq
podlators version'
extern_C='extern'
extras=''
fflushNULL='define'
fflushall=''
find=''
firstmakefile='makefile'
flex=''
fpossize='16'
fpostype='fpos_t'
freetype='void'
from=':'
full_ar='/usr/bin/ar'
full_csh='csh'
full_sed='/bin/sed'
gccansipedantic=''
gccosandvers=''
gccversion='7.3.0'
getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
getlogin_r_proto='REENTRANT_PROTO_I_BW'
getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
getservent_r_proto='REENTRANT_PROTO_I_SBWR'
getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
gidformat='"u"'
gidsign='1'
gidsize='4'
gidtype='gid_t'
git_branch=''
git_commit_id=''
git_commit_id_title=''
git_describe=''
git_uncommitted_changes=''
glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib
/usr/ucblib /usr/local/lib '
gmake='gmake'
gmtime_r_proto='REENTRANT_PROTO_S_TS'
gnulibc_version='2.27'
grep='grep'
groupcat='cat /etc/group'
groupstype='gid_t'
gzip='gzip'
h_fcntl='false'
h_sysfile='true'
hint='recommended'
hostcat='cat /etc/hosts'
hostgenerate=''
hostosname=''
hostperl=''
html1dir=' '
html1direxp=''
html3dir=' '
html3direxp=''
i16size='2'
i16type='short'
i32size='4'
i32type='int'
i64size='8'
i64type='long'
i8size='1'
i8type='signed char'
i_arpainet='define'
i_assert='define'
i_bfd=''
i_bsdioctl=''
i_crypt='define'
i_db='define'
i_dbm='define'
i_dirent='define'
i_dlfcn='define'
i_execinfo='define'
i_fcntl=''
i_fenv='define'
i_float='define'
i_fp=''
i_fp_class=''
i_gdbm='define'
i_gdbm_ndbm='define'
i_gdbmndbm=''
i_grp='define'
i_ieeefp=''
i_inttypes='define'
i_langinfo='define'
i_libutil=''
i_limits='define'
i_locale='define'
i_machcthr=''
i_malloc='define'
i_mallocmalloc=''
i_math='define'
i_memory=''
i_mntent='define'
i_ndbm='define'
i_netdb='define'
i_neterrno=''
i_netinettcp='define'
i_niin='define'
i_poll='define'
i_prot=''
i_pthread='define'
i_pwd='define'
i_quadmath='define'
i_rpcsvcdbm=''
i_sgtty=''
i_shadow='define'
i_socks=''
i_stdarg='define'
i_stdbool='define'
i_stddef='define'
i_stdint='define'
i_stdlib='define'
i_string='define'
i_sunmath=''
i_sysaccess=''
i_sysdir='define'
i_sysfile='define'
i_sysfilio=''
i_sysin=''
i_sysioctl='define'
i_syslog='define'
i_sysmman='define'
i_sysmode=''
i_sysmount='define'
i_sysndir=''
i_sysparam='define'
i_syspoll='define'
i_sysresrc='define'
i_syssecrt=''
i_sysselct='define'
i_syssockio=''
i_sysstat='define'
i_sysstatfs='define'
i_sysstatvfs='define'
i_systime='define'
i_systimek=''
i_systimes='define'
i_systypes='define'
i_sysuio='define'
i_sysun='define'
i_sysutsname='define'
i_sysvfs='define'
i_syswait='define'
i_termio=''
i_termios='define'
i_time='define'
i_unistd='define'
i_ustat='define'
i_utime='define'
i_values='define'
i_varargs=''
i_varhdr='stdarg.h'
i_vfork=''
i_xlocale=''
ignore_versioned_solibs='y'
inc_version_list='5.26.0 5.26.0/x86_64-linux-gnu-thread-multi'
inc_version_list_init='"5.26.0","5.26.0/x86_64-linux-gnu-thread-multi",0'
incpath=''
incpth='/usr/lib/gcc/x86_64-linux-gnu/7/include /usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu /usr/include'
inews=''
initialinstalllocation='/usr/bin'
installarchlib='/usr/lib/x86_64-linux-gnu/perl/5.26'
installbin='/usr/bin'
installhtml1dir=''
installhtml3dir=''
installman1dir='/usr/share/man/man1'
installman3dir='/usr/share/man/man3'
installprefix='/usr'
installprefixexp='/usr'
installprivlib='/usr/share/perl/5.26'
installscript='/usr/bin'
installsitearch='/usr/local/lib/x86_64-linux-gnu/perl/5.26.1'
installsitebin='/usr/local/bin'
installsitehtml1dir=''
installsitehtml3dir=''
installsitelib='/usr/local/share/perl/5.26.1'
installsiteman1dir='/usr/local/man/man1'
installsiteman3dir='/usr/local/man/man3'
installsitescript='/usr/local/bin'
installstyle='lib/perl5'
installusrbinperl=''
installvendorarch='/usr/lib/x86_64-linux-gnu/perl5/5.26'
installvendorbin='/usr/bin'
installvendorhtml1dir=''
installvendorhtml3dir=''
installvendorlib='/usr/share/perl5'
installvendorman1dir='/usr/share/man/man1'
installvendorman3dir='/usr/share/man/man3'
installvendorscript='/usr/bin'
intsize='4'
issymlink='test -h'
ivdformat='"ld"'
ivsize='8'
ivtype='long'
known_extensions='Amiga/ARexx Amiga/Exec Archive/Tar Attribute/Handlers
AutoLoader B B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements
CPAN/Meta/YAML Carp Compress/Raw/Bzip2 Compress/Raw/Zlib Config/Perl/V
Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Devel/SelfStubber Digest
Digest/MD5 Digest/SHA Dumpvalue Encode Env Errno Exporter
ExtUtils/CBuilder ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker
ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS Fcntl File/DosGlob
File/Fetch File/Find File/Glob File/Path File/Temp FileCache
Filter/Simple Filter/Util/Call GDBM_File Getopt/Long HTTP/Tiny Hash/Util
Hash/Util/FieldHash I18N/Collate I18N/LangTags I18N/Langinfo IO
IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 IPC/SysV JSON/PP
List/Util Locale/Codes Locale/Maketext Locale/Maketext/Simple
MIME/Base64 Math/BigInt Math/BigInt/FastCalc Math/BigRat Math/Complex
Memoize Module/CoreList
Module/Load Module/Load/Conditional Module/Loaded Module/Metadata
NDBM_File NEXT Net/Ping ODBM_File Opcode POSIX Params/Check Perl/OSType
PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via
PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html
Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage SDBM_File Safe Search/Dict
SelfLoader Socket Storable Sys/Hostname Sys/Syslog Term/ANSIColor
Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple
Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue
Thread/Semaphore Tie/File Tie/Hash/NamedCapture Tie/Memoize Tie/RefHash
Time/HiRes Time/Local Time/Piece Unicode/Collate Unicode/Normalize
VMS/DCLsym VMS/Filespec VMS/Stdio Win32 Win32API/File Win32CORE
XS/APItest XS/Typemap XSLoader arybase attributes autodie autouse base
bignum constant encoding/warnings experimental if lib libnet mro parent
perlfaq podlators re
threads threads/shared version '
ksh=''
ld='x86_64-linux-gnu-gcc'
ld_can_script='define'
lddlflags='-shared -L/usr/local/lib -fstack-protector-strong'
ldflags=' -fstack-protector-strong -L/usr/local/lib'
ldflags_nolargefiles=' -fstack-protector-strong -L/usr/local/lib'
ldflags_uselargefiles=''
ldlibpthname='LD_LIBRARY_PATH'
less='less'
lib_ext='.a'
libc='libc-2.27.so'
libdb_needs_pthread='N'
libperl='libperl.so.5.26'
libpth='/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib
/usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib'
libs='-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt'
libs_nolargefiles='-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt'
libsdirs=' /usr/lib/x86_64-linux-gnu'
libsfiles=' libgdbm.so libgdbm_compat.so libdb.so libdl.so libm.so
libpthread.so libc.so libcrypt.so'
libsfound=' /usr/lib/x86_64-linux-gnu/libgdbm.so
/usr/lib/x86_64-linux-gnu/libgdbm_compat.so
/usr/lib/x86_64-linux-gnu/libdb.so /usr/lib/x86_64-linux-gnu/libdl.so
/usr/lib/x86_64-linux-gnu/libm.so
/usr/lib/x86_64-linux-gnu/libpthread.so
/usr/lib/x86_64-linux-gnu/libc.so /usr/lib/x86_64-linux-gnu/libcrypt.so'
libspath=' /usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/7/include-fixed
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib
/usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib'
libswanted='gdbm gdbm_compat db dl m pthread c crypt gdbm_compat'
libswanted_nolargefiles='gdbm gdbm_compat db dl m pthread c crypt
gdbm_compat'
libswanted_uselargefiles=''
line=''
lint=''
lkflags=''
ln='ln'
lns='/bin/ln -s'
localtime_r_proto='REENTRANT_PROTO_S_TS'
locincpth='/usr/local/include /opt/local/include /usr/gnu/include
/opt/gnu/include /usr/GNU/include /opt/GNU/include'
loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib
/usr/GNU/lib /opt/GNU/lib'
longdblinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff,
0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
longdblkind='3'
longdblmantbits='64'
longdblnanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00'
longdblsize='16'
longlongsize='8'
longsize='8'
lp=''
lpr=''
ls='ls'
lseeksize='8'
lseektype='off_t'
mail=''
mailx=''
make='make'
make_set_make='#'
mallocobj=''
mallocsrc=''
malloctype='void *'
man1dir='/usr/share/man/man1'
man1direxp='/usr/share/man/man1'
man1ext='1p'
man3dir='/usr/share/man/man3'
man3direxp='/usr/share/man/man3'
man3ext='3pm'
mips_type=''
mistrustnm=''
mkdir='mkdir'
mmaptype='void *'
modetype='mode_t'
more='more'
multiarch=''
mv=''
myarchname='x86_64-linux'
mydomain=''
myhostname='localhost'
myuname='linux localhost 4.9.0 #1 smp debian 4.9.0 x86_64 gnulinux '
n='-n'
need_va_copy='define'
netdb_hlen_type='size_t'
netdb_host_type='char *'
netdb_name_type='const char *'
netdb_net_type='in_addr_t'
nm='nm'
nm_opt=''
nm_so_opt='--dynamic'
nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN
CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V
Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder
ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest
ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path
File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate
I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP
Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt
Math/BigRat Math/Complex Memoize Module/CoreList Module/Load
Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping
Params/Check Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes
Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe
Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine
Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords
Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash
Time/Local XSLoader autodie autouse base bignum constant
encoding/warnings experimental if lib libnet parent perlfaq podlators
version'
nroff='nroff'
nvEUformat='"E"'
nvFUformat='"F"'
nvGUformat='"G"'
nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
nv_preserves_uv_bits='53'
nveformat='"e"'
nvfformat='"f"'
nvgformat='"g"'
nvmantbits='52'
nvsize='8'
nvtype='double'
o_nonblock='O_NONBLOCK'
obj_ext='.o'
old_pthread_create_joinable=''
optimize='-O2 -g'
orderlib='false'
osname='linux'
osvers='4.9.0'
otherlibdirs=' '
package='perl5'
pager='/usr/bin/sensible-pager'
passcat='cat /etc/passwd'
patchlevel='26'
path_sep=':'
perl='perl'
perl5='/usr/bin/perl'
perl_patchlevel=''
perl_static_inline='static __inline__'
perladmin='root@localhost'
perllibs='-ldl -lm -lpthread -lc -lcrypt'
perlpath='/usr/bin/perl'
pg='pg'
phostname='hostname'
pidtype='pid_t'
plibpth='/lib/x86_64-linux-gnu/7 /lib/x86_64-linux-gnu /lib/../lib
/usr/lib/x86_64-linux-gnu/7 /usr/lib/x86_64-linux-gnu /usr/lib/../lib
/lib /usr/lib'
pmake=''
pr=''
prefix='/usr'
prefixexp='/usr'
privlib='/usr/share/perl/5.26'
privlibexp='/usr/share/perl/5.26'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='8'
quadkind='2'
quadtype='long'
randbits='48'
randfunc='Perl_drand48'
random_r_proto='REENTRANT_PROTO_I_St'
randseedtype='U32'
ranlib=':'
rd_nodata='-1'
readdir64_r_proto='REENTRANT_PROTO_I_TSR'
readdir_r_proto='REENTRANT_PROTO_I_TSR'
revision='5'
rm='rm'
rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try*
try.core*'
rmail=''
run=''
runnm='false'
sGMTIME_max='67768036191676799'
sGMTIME_min='-62167219200'
sLOCALTIME_max='67768036191676799'
sLOCALTIME_min='-62167219200'
sPRIEUldbl='"LE"'
sPRIFUldbl='"LF"'
sPRIGUldbl='"LG"'
sPRIXU64='"lX"'
sPRId64='"ld"'
sPRIeldbl='"Le"'
sPRIfldbl='"Lf"'
sPRIgldbl='"Lg"'
sPRIi64='"li"'
sPRIo64='"lo"'
sPRIu64='"lu"'
sPRIx64='"lx"'
sSCNfldbl='"Lf"'
sched_yield='sched_yield()'
scriptdir='/usr/bin'
scriptdirexp='/usr/bin'
sed='sed'
seedfunc='Perl_drand48_init'
selectminbits='64'
selecttype='fd_set *'
sendmail=''
setgrent_r_proto='0'
sethostent_r_proto='0'
setlocale_r_proto='0'
setnetent_r_proto='0'
setprotoent_r_proto='0'
setpwent_r_proto='0'
setservent_r_proto='0'
sh='/bin/sh'
shar=''
sharpbang='#!'
shmattype='void *'
shortsize='2'
shrpenv=''
shsharp='true'
sig_count='65'
sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2
PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM
PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39
NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51
NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63
RTMAX IOT CLD POLL UNUSED '
sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT",
"BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM",
"STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU",
"XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33",
"RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41",
"NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49",
"NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57",
"NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "RTMAX", "IOT",
"CLD", "POLL", "UNUSED", 0'
sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 6 17 29 31 '
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
sig_size='69'
signal_t='void'
sitearch='/usr/local/lib/x86_64-linux-gnu/perl/5.26.1'
sitearchexp='/usr/local/lib/x86_64-linux-gnu/perl/5.26.1'
sitebin='/usr/local/bin'
sitebinexp='/usr/local/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
sitelib='/usr/local/share/perl/5.26.1'
sitelib_stem=''
sitelibexp='/usr/local/share/perl/5.26.1'
siteman1dir='/usr/local/man/man1'
siteman1direxp='/usr/local/man/man1'
siteman3dir='/usr/local/man/man3'
siteman3direxp='/usr/local/man/man3'
siteprefix='/usr/local'
siteprefixexp='/usr/local'
sitescript='/usr/local/bin'
sitescriptexp='/usr/local/bin'
sizesize='8'
sizetype='size_t'
sleep=''
smail=''
so='so'
sockethdr=''
socketlib=''
socksizetype='socklen_t'
sort='sort'
spackage='Perl5'
spitshell='cat'
srand48_r_proto='REENTRANT_PROTO_I_LS'
srandom_r_proto='REENTRANT_PROTO_I_TS'
src='.'
ssizetype='ssize_t'
st_ino_sign='1'
st_ino_size='8'
startperl='#!/usr/bin/perl'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
stdio_base='((fp)->_base)'
stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
stdio_cnt='((fp)->_cnt)'
stdio_filbuf=''
stdio_ptr='((fp)->_ptr)'
stdio_stream_array=''
strerror_r_proto='REENTRANT_PROTO_B_IBW'
strings='/usr/include/string.h'
submit=''
subversion='1'
sysman='/usr/share/man/man1'
sysroot=''
tail=''
tar=''
targetarch=''
targetdir=''
targetenv=''
targethost=''
targetmkdir=''
targetport=''
targetsh='/bin/sh'
tbl=''
tee=''
test='test'
timeincl='/usr/include/x86_64-linux-gnu/sys/time.h /usr/include/time.h '
timetype='time_t'
tmpnam_r_proto='REENTRANT_PROTO_B_B'
to=':'
touch='touch'
tr='tr'
trnl='\n'
troff=''
ttyname_r_proto='REENTRANT_PROTO_I_IBW'
u16size='2'
u16type='unsigned short'
u32size='4'
u32type='unsigned int'
u64size='8'
u64type='unsigned long'
u8size='1'
u8type='unsigned char'
uidformat='"u"'
uidsign='1'
uidsize='4'
uidtype='uid_t'
uname='uname'
uniq='uniq'
uquadtype='unsigned long'
use5005threads=''
use64bitall='define'
use64bitint='define'
usecbacktrace=''
usecrosscompile=''
usedevel=''
usedl='define'
usedtrace=''
usefaststdio=''
useithreads='define'
usekernprocpathname=''
uselargefiles='define'
uselongdouble=''
usemallocwrap='define'
usemorebits=''
usemultiplicity='define'
usemymalloc='n'
usenm='false'
usensgetexecutablepath=''
useopcode='true'
useperlio='define'
useposix='true'
usequadmath=''
usereentrant=''
userelocatableinc=''
useshrplib='true'
usesitecustomize=''
usesocks=''
usethreads='define'
usevendorprefix='define'
useversionedarchname=''
usevfork='false'
usrinc='/usr/include'
uuname=''
uvXUformat='"lX"'
uvoformat='"lo"'
uvsize='8'
uvtype='unsigned long'
uvuformat='"lu"'
uvxformat='"lx"'
vaproto='define'
vendorarch='/usr/lib/x86_64-linux-gnu/perl5/5.26'
vendorarchexp='/usr/lib/x86_64-linux-gnu/perl5/5.26'
vendorbin='/usr/bin'
vendorbinexp='/usr/bin'
vendorhtml1dir=' '
vendorhtml1direxp=''
vendorhtml3dir=' '
vendorhtml3direxp=''
vendorlib='/usr/share/perl5'
vendorlib_stem=''
vendorlibexp='/usr/share/perl5'
vendorman1dir='/usr/share/man/man1'
vendorman1direxp='/usr/share/man/man1'
vendorman3dir='/usr/share/man/man3'
vendorman3direxp='/usr/share/man/man3'
vendorprefix='/usr'
vendorprefixexp='/usr'
vendorscript='/usr/bin'
vendorscriptexp='/usr/bin'
version='5.26.1'
version_patchlevel_string='version 26 subversion 1'
versiononly=''
vi=''
xlibpth='/usr/lib/386 /lib/386'
yacc='yacc'
yaccflags=''
zcat=''
zip='zip'

@p5pRT
Copy link
Author

p5pRT commented Jul 12, 2018

From simon.woerner@rub.de

perl_crash

@p5pRT
Copy link
Author

p5pRT commented Jul 12, 2018

From simon.woerner@rub.de

ASAN​:SIGSEGV

==24883==ERROR​: AddressSanitizer​: SEGV on unknown address 0x000000000000 (pc 0x0000006380e0 bp 0x000000000000 sp 0x7ffce36fccc0 T0)
  #0 0x6380df in Perl_sv_setpv_bufsize (/home/kafl/perl-5.28.0/perl+0x6380df)
  #1 0x5e9d77 in Perl_pp_concat (/home/kafl/perl-5.28.0/perl+0x5e9d77)
  #2 0x5e736a in Perl_runops_standard (/home/kafl/perl-5.28.0/perl+0x5e736a)
  #3 0x48e977 in perl_run (/home/kafl/perl-5.28.0/perl+0x48e977)
  #4 0x424724 in main (/home/kafl/perl-5.28.0/perl+0x424724)
  #5 0x7f97d420b82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
  #6 0x424c98 in _start (/home/kafl/perl-5.28.0/perl+0x424c98)

AddressSanitizer can not provide additional info.
SUMMARY​: AddressSanitizer​: SEGV ??​:0 Perl_sv_setpv_bufsize
==24883==ABORTING

@p5pRT
Copy link
Author

p5pRT commented Sep 3, 2018

From @jkeenan

On Thu, 12 Jul 2018 12​:15​:34 GMT, simon.woerner@​rub.de wrote​:

This is a bug report for perl from simon.woerner@​rub.de,
generated with the help of perlbug 1.40 running under perl 5.26.1.

-----------------------------------------------------------------
[Please describe your issue here]
Dear all,

the following crash was found by a modified version of the kAFL fuzzer
(https://github.com/RUB-SysSec/kAFL).

I have attached the crashing input and an ASAN output.
To reproduce the crash issue, execute perl5 with the crashing input as
script (perl <crashing_input>).

Credits​: Simon Wörner, Sergej Schumilo, Cornelius Aschermann (all of
Ruhr-Universität Bochum)

Best regards,
Simon Wörner

Running on a threaded, debugging Perl built at blead (v5.29.2-41-ge47f50f38f) and with this input (as seen in vim)​:

#####
A^@​^@​A$A.=*^@​A=@​^@​5=*A*A
#####

... I got this result​:

#####
Operator or semicolon missing before *A at /home/jkeenan/learn/perl/p5p/133363-crash/133363-perl_crash line 1.
Ambiguous use of * resolved as operator * at /home/jkeenan/learn/perl/p5p/133363-crash/133363-perl_crash line 1.
Segmentation fault (core dumped)
#####

I believe that confirms the report.

Thank you very much.

--
James E Keenan (jkeenan@​cpan.org)

@p5pRT
Copy link
Author

p5pRT commented Sep 3, 2018

The RT System itself - Status changed from 'new' to 'open'

@tonycoz
Copy link
Contributor

tonycoz commented Jan 30, 2020

This looks like a stack not refcounted issue, it deparses to:

'A'->A($A .= *A = @5 = *A * 'A');

The $A would be pushed, then *A is set to 0 (scalar @5) which frees $A, which .= (pp_concat) then tries to modify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants