<div dir="ltr">Looks correct. <div>Can you post the output of libFuzzer here? </div><div>Something like</div><div><div>#0      READ   cov: 0 bits: 0 units: 97701 exec/s: 0</div><div>#1      pulse  cov: 732 bits: 0 units: 97701 exec/s: 0</div><div>#2      pulse  cov: 737 bits: 0 units: 97701 exec/s: 1</div><div>#4      pulse  cov: 858 bits: 0 units: 97701 exec/s: 2</div><div>#8      pulse  cov: 880 bits: 0 units: 97701 exec/s: 4</div></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 3, 2015 at 10:50 AM, Greg Stark <span dir="ltr"><<a href="mailto:stark@mit.edu" target="_blank">stark@mit.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Sep 3, 2015 at 6:48 PM, Greg Stark <<a href="mailto:stark@mit.edu">stark@mit.edu</a>> wrote:<br>
> What I'm now wondering is I saw somewhere that it was important to use<br>
> clang to link. I think the build might have used ld to link.<br>
<br>
</span>Hm. No, the final link command still uses clang (even though the<br>
config info seems to indicate otherwise):<br>
<br>
clang -Wall -Wmissing-prototypes -Wpointer-arith<br>
<span class="">-Wdeclaration-after-statement -Wendif-labels<br>
-Wmissing-format-attribute -Wformat-security -fno-strict-aliasing<br>
-fwrapv -Wno-unused-command-line-argument -g -O0 -fsanitize=address<br>
</span>-fsanitize-coverage=edge,indirect-calls,8bit-counters -L../../src/port<br>
-L../../src/common -Wl,--as-needed<br>
-Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags  -Wl,-E<br>
access/brin/brin.o access/brin/brin_pageops.o<br>
access/brin/brin_revmap.o access/brin/brin_tuple.o<br>
access/brin/brin_xlog.o access/brin/brin_minmax.o<br>
access/brin/brin_inclusion.o access/common/heaptuple.o<br>
access/common/indextuple.o access/common/printtup.o<br>
access/common/reloptions.o access/common/scankey.o<br>
access/common/tupconvert.o access/common/tupdesc.o<br>
access/gin/ginutil.o access/gin/gininsert.o access/gin/ginxlog.o<br>
access/gin/ginentrypage.o access/gin/gindatapage.o<br>
access/gin/ginbtree.o access/gin/ginscan.o access/gin/ginget.o<br>
access/gin/ginvacuum.o access/gin/ginarrayproc.o access/gin/ginbulk.o<br>
access/gin/ginfast.o access/gin/ginpostinglist.o access/gin/ginlogic.o<br>
access/gist/gist.o access/gist/gistutil.o access/gist/gistxlog.o<br>
access/gist/gistvacuum.o access/gist/gistget.o access/gist/gistscan.o<br>
access/gist/gistproc.o access/gist/gistsplit.o access/gist/gistbuild.o<br>
access/gist/gistbuildbuffers.o access/hash/hash.o<br>
access/hash/hashfunc.o access/hash/hashinsert.o access/hash/hashovfl.o<br>
access/hash/hashpage.o access/hash/hashscan.o access/hash/hashsearch.o<br>
access/hash/hashsort.o access/hash/hashutil.o access/heap/heapam.o<br>
access/heap/hio.o access/heap/pruneheap.o access/heap/rewriteheap.o<br>
access/heap/syncscan.o access/heap/tuptoaster.o<br>
access/heap/visibilitymap.o access/index/genam.o<br>
access/index/indexam.o access/nbtree/nbtcompare.o<br>
access/nbtree/nbtinsert.o access/nbtree/nbtpage.o<br>
access/nbtree/nbtree.o access/nbtree/nbtsearch.o<br>
access/nbtree/nbtutils.o access/nbtree/nbtsort.o<br>
access/nbtree/nbtxlog.o access/rmgrdesc/brindesc.o<br>
access/rmgrdesc/clogdesc.o access/rmgrdesc/committsdesc.o<br>
access/rmgrdesc/dbasedesc.o access/rmgrdesc/gindesc.o<br>
access/rmgrdesc/gistdesc.o access/rmgrdesc/hashdesc.o<br>
access/rmgrdesc/heapdesc.o access/rmgrdesc/mxactdesc.o<br>
access/rmgrdesc/nbtdesc.o access/rmgrdesc/relmapdesc.o<br>
access/rmgrdesc/replorigindesc.o access/rmgrdesc/seqdesc.o<br>
access/rmgrdesc/smgrdesc.o access/rmgrdesc/spgdesc.o<br>
access/rmgrdesc/standbydesc.o access/rmgrdesc/tblspcdesc.o<br>
access/rmgrdesc/xactdesc.o access/rmgrdesc/xlogdesc.o<br>
access/spgist/spgutils.o access/spgist/spginsert.o<br>
access/spgist/spgscan.o access/spgist/spgvacuum.o<br>
access/spgist/spgdoinsert.o access/spgist/spgxlog.o<br>
access/spgist/spgtextproc.o access/spgist/spgquadtreeproc.o<br>
access/spgist/spgkdtreeproc.o access/tablesample/bernoulli.o<br>
access/tablesample/system.o access/tablesample/tablesample.o<br>
access/transam/clog.o access/transam/commit_ts.o<br>
access/transam/multixact.o access/transam/parallel.o<br>
access/transam/rmgr.o access/transam/slru.o access/transam/subtrans.o<br>
access/transam/timeline.o access/transam/transam.o<br>
access/transam/twophase.o access/transam/twophase_rmgr.o<br>
access/transam/varsup.o access/transam/xact.o access/transam/xlog.o<br>
access/transam/xlogarchive.o access/transam/xlogfuncs.o<br>
access/transam/xloginsert.o access/transam/xlogreader.o<br>
access/transam/xlogutils.o bootstrap/bootparse.o bootstrap/bootstrap.o<br>
catalog/catalog.o catalog/dependency.o catalog/heap.o catalog/index.o<br>
catalog/indexing.o catalog/namespace.o catalog/aclchk.o<br>
catalog/objectaccess.o catalog/objectaddress.o catalog/pg_aggregate.o<br>
catalog/pg_collation.o catalog/pg_constraint.o catalog/pg_conversion.o<br>
catalog/pg_depend.o catalog/pg_enum.o catalog/pg_inherits.o<br>
catalog/pg_largeobject.o catalog/pg_namespace.o catalog/pg_operator.o<br>
catalog/pg_proc.o catalog/pg_range.o catalog/pg_db_role_setting.o<br>
catalog/pg_shdepend.o catalog/pg_type.o catalog/storage.o<br>
catalog/toasting.o parser/analyze.o parser/gram.o parser/keywords.o<br>
parser/kwlookup.o parser/parser.o parser/parse_agg.o<br>
parser/parse_clause.o parser/parse_coerce.o parser/parse_collate.o<br>
parser/parse_cte.o parser/parse_expr.o parser/parse_func.o<br>
parser/parse_node.o parser/parse_oper.o parser/parse_param.o<br>
parser/parse_relation.o parser/parse_target.o parser/parse_type.o<br>
parser/parse_utilcmd.o parser/scansup.o commands/aggregatecmds.o<br>
commands/alter.o commands/analyze.o commands/async.o<br>
commands/cluster.o commands/comment.o commands/collationcmds.o<br>
commands/constraint.o commands/conversioncmds.o commands/copy.o<br>
commands/createas.o commands/dbcommands.o commands/define.o<br>
commands/discard.o commands/dropcmds.o commands/event_trigger.o<br>
commands/explain.o commands/extension.o commands/foreigncmds.o<br>
commands/functioncmds.o commands/indexcmds.o commands/lockcmds.o<br>
commands/matview.o commands/operatorcmds.o commands/opclasscmds.o<br>
commands/policy.o commands/portalcmds.o commands/prepare.o<br>
commands/proclang.o commands/schemacmds.o commands/seclabel.o<br>
commands/sequence.o commands/tablecmds.o commands/tablespace.o<br>
commands/trigger.o commands/tsearchcmds.o commands/typecmds.o<br>
commands/user.o commands/vacuum.o commands/vacuumlazy.o<br>
commands/variable.o commands/view.o executor/execAmi.o<br>
executor/execCurrent.o executor/execGrouping.o executor/execIndexing.o<br>
executor/execJunk.o executor/execMain.o executor/execProcnode.o<br>
executor/execQual.o executor/execScan.o executor/execTuples.o<br>
executor/execUtils.o executor/functions.o executor/instrument.o<br>
executor/nodeAppend.o executor/nodeAgg.o executor/nodeBitmapAnd.o<br>
executor/nodeBitmapOr.o executor/nodeBitmapHeapscan.o<br>
executor/nodeBitmapIndexscan.o executor/nodeCustom.o<br>
executor/nodeHash.o executor/nodeHashjoin.o executor/nodeIndexscan.o<br>
executor/nodeIndexonlyscan.o executor/nodeLimit.o<br>
executor/nodeLockRows.o executor/nodeMaterial.o<br>
executor/nodeMergeAppend.o executor/nodeMergejoin.o<br>
executor/nodeModifyTable.o executor/nodeNestloop.o<br>
executor/nodeFunctionscan.o executor/nodeRecursiveunion.o<br>
executor/nodeResult.o executor/nodeSamplescan.o executor/nodeSeqscan.o<br>
executor/nodeSetOp.o executor/nodeSort.o executor/nodeUnique.o<br>
executor/nodeValuesscan.o executor/nodeCtescan.o<br>
executor/nodeWorktablescan.o executor/nodeGroup.o<br>
executor/nodeSubplan.o executor/nodeSubqueryscan.o<br>
executor/nodeTidscan.o executor/nodeForeignscan.o<br>
executor/nodeWindowAgg.o executor/tstoreReceiver.o executor/spi.o<br>
foreign/foreign.o lib/binaryheap.o lib/bipartite_match.o<br>
lib/hyperloglog.o lib/ilist.o lib/pairingheap.o lib/rbtree.o<br>
lib/stringinfo.o libpq/be-fsstubs.o libpq/be-secure.o libpq/auth.o<br>
libpq/crypt.o libpq/hba.o libpq/ip.o libpq/md5.o libpq/pqcomm.o<br>
libpq/pqformat.o libpq/pqmq.o libpq/pqsignal.o main/main.o<br>
nodes/nodeFuncs.o nodes/nodes.o nodes/list.o nodes/bitmapset.o<br>
nodes/tidbitmap.o nodes/copyfuncs.o nodes/equalfuncs.o<br>
nodes/makefuncs.o nodes/outfuncs.o nodes/readfuncs.o nodes/print.o<br>
nodes/read.o nodes/params.o nodes/value.o optimizer/geqo/geqo_copy.o<br>
optimizer/geqo/geqo_eval.o optimizer/geqo/geqo_main.o<br>
optimizer/geqo/geqo_misc.o optimizer/geqo/geqo_mutation.o<br>
optimizer/geqo/geqo_pool.o optimizer/geqo/geqo_random.o<br>
optimizer/geqo/geqo_recombination.o optimizer/geqo/geqo_selection.o<br>
optimizer/geqo/geqo_erx.o optimizer/geqo/geqo_pmx.o<br>
optimizer/geqo/geqo_cx.o optimizer/geqo/geqo_px.o<br>
optimizer/geqo/geqo_ox1.o optimizer/geqo/geqo_ox2.o<br>
optimizer/path/allpaths.o optimizer/path/clausesel.o<br>
optimizer/path/costsize.o optimizer/path/equivclass.o<br>
optimizer/path/indxpath.o optimizer/path/joinpath.o<br>
optimizer/path/joinrels.o optimizer/path/pathkeys.o<br>
optimizer/path/tidpath.o optimizer/plan/analyzejoins.o<br>
optimizer/plan/createplan.o optimizer/plan/initsplan.o<br>
optimizer/plan/planagg.o optimizer/plan/planmain.o<br>
optimizer/plan/planner.o optimizer/plan/setrefs.o<br>
optimizer/plan/subselect.o optimizer/prep/prepjointree.o<br>
optimizer/prep/prepqual.o optimizer/prep/prepsecurity.o<br>
optimizer/prep/preptlist.o optimizer/prep/prepunion.o<br>
optimizer/util/clauses.o optimizer/util/joininfo.o<br>
optimizer/util/orclauses.o optimizer/util/pathnode.o<br>
optimizer/util/placeholder.o optimizer/util/plancat.o<br>
optimizer/util/predtest.o optimizer/util/relnode.o<br>
optimizer/util/restrictinfo.o optimizer/util/tlist.o<br>
optimizer/util/var.o port/atomics.o port/dynloader.o port/pg_sema.o<br>
port/pg_shmem.o port/pg_latch.o postmaster/autovacuum.o<br>
postmaster/bgworker.o postmaster/bgwriter.o postmaster/checkpointer.o<br>
postmaster/fork_process.o postmaster/pgarch.o postmaster/pgstat.o<br>
postmaster/postmaster.o postmaster/startup.o postmaster/syslogger.o<br>
postmaster/walwriter.o regex/regcomp.o regex/regerror.o<br>
regex/regexec.o regex/regfree.o regex/regprefix.o regex/regexport.o<br>
replication/logical/decode.o replication/logical/logical.o<br>
replication/logical/logicalfuncs.o replication/logical/reorderbuffer.o<br>
replication/logical/origin.o replication/logical/snapbuild.o<br>
replication/walsender.o replication/walreceiverfuncs.o<br>
replication/walreceiver.o replication/basebackup.o<br>
replication/repl_gram.o replication/slot.o replication/slotfuncs.o<br>
replication/syncrep.o rewrite/rewriteRemove.o rewrite/rewriteDefine.o<br>
rewrite/rewriteHandler.o rewrite/rewriteManip.o<br>
rewrite/rewriteSupport.o rewrite/rowsecurity.o<br>
storage/buffer/buf_table.o storage/buffer/buf_init.o<br>
storage/buffer/bufmgr.o storage/buffer/freelist.o<br>
storage/buffer/localbuf.o storage/file/fd.o storage/file/buffile.o<br>
storage/file/copydir.o storage/file/reinit.o<br>
storage/freespace/freespace.o storage/freespace/fsmpage.o<br>
storage/freespace/indexfsm.o storage/ipc/dsm_impl.o storage/ipc/dsm.o<br>
storage/ipc/ipc.o storage/ipc/ipci.o storage/ipc/pmsignal.o<br>
storage/ipc/procarray.o storage/ipc/procsignal.o storage/ipc/shmem.o<br>
storage/ipc/shmqueue.o storage/ipc/shm_mq.o storage/ipc/shm_toc.o<br>
storage/ipc/sinval.o storage/ipc/sinvaladt.o storage/ipc/standby.o<br>
storage/large_object/inv_api.o storage/lmgr/lmgr.o storage/lmgr/lock.o<br>
storage/lmgr/proc.o storage/lmgr/deadlock.o storage/lmgr/lwlock.o<br>
storage/lmgr/spin.o storage/lmgr/s_lock.o storage/lmgr/predicate.o<br>
storage/page/bufpage.o storage/page/checksum.o storage/page/itemptr.o<br>
storage/smgr/md.o storage/smgr/smgr.o storage/smgr/smgrtype.o<br>
tcop/dest.o tcop/fastpath.o tcop/postgres.o tcop/pquery.o<br>
tcop/utility.o tsearch/ts_locale.o tsearch/ts_parse.o<br>
tsearch/wparser.o tsearch/wparser_def.o tsearch/dict.o<br>
tsearch/dict_simple.o tsearch/dict_synonym.o tsearch/dict_thesaurus.o<br>
tsearch/dict_ispell.o tsearch/regis.o tsearch/spell.o<br>
tsearch/to_tsany.o tsearch/ts_selfuncs.o tsearch/ts_typanalyze.o<br>
tsearch/ts_utils.o utils/adt/acl.o utils/adt/arrayfuncs.o<br>
utils/adt/array_expanded.o utils/adt/array_selfuncs.o<br>
utils/adt/array_typanalyze.o utils/adt/array_userfuncs.o<br>
utils/adt/arrayutils.o utils/adt/ascii.o utils/adt/bool.o<br>
utils/adt/cash.o utils/adt/char.o utils/adt/date.o<br>
utils/adt/datetime.o utils/adt/datum.o utils/adt/dbsize.o<br>
utils/adt/domains.o utils/adt/encode.o utils/adt/enum.o<br>
utils/adt/expandeddatum.o utils/adt/float.o utils/adt/format_type.o<br>
utils/adt/formatting.o utils/adt/genfile.o utils/adt/geo_ops.o<br>
utils/adt/geo_selfuncs.o utils/adt/inet_cidr_ntop.o<br>
utils/adt/inet_net_pton.o utils/adt/int.o utils/adt/int8.o<br>
utils/adt/json.o utils/adt/jsonb.o utils/adt/jsonb_gin.o<br>
utils/adt/jsonb_op.o utils/adt/jsonb_util.o utils/adt/jsonfuncs.o<br>
utils/adt/like.o utils/adt/lockfuncs.o utils/adt/mac.o<br>
utils/adt/misc.o utils/adt/nabstime.o utils/adt/name.o<br>
utils/adt/network.o utils/adt/network_gist.o<br>
utils/adt/network_selfuncs.o utils/adt/numeric.o utils/adt/numutils.o<br>
utils/adt/oid.o utils/adt/oracle_compat.o utils/adt/orderedsetaggs.o<br>
utils/adt/pg_locale.o utils/adt/pg_lsn.o<br>
utils/adt/pg_upgrade_support.o utils/adt/pgstatfuncs.o<br>
utils/adt/pseudotypes.o utils/adt/quote.o utils/adt/rangetypes.o<br>
utils/adt/rangetypes_gist.o utils/adt/rangetypes_selfuncs.o<br>
utils/adt/rangetypes_spgist.o utils/adt/rangetypes_typanalyze.o<br>
utils/adt/regexp.o utils/adt/regproc.o utils/adt/ri_triggers.o<br>
utils/adt/rowtypes.o utils/adt/ruleutils.o utils/adt/selfuncs.o<br>
utils/adt/tid.o utils/adt/timestamp.o utils/adt/trigfuncs.o<br>
utils/adt/tsginidx.o utils/adt/tsgistidx.o utils/adt/tsquery.o<br>
utils/adt/tsquery_cleanup.o utils/adt/tsquery_gist.o<br>
utils/adt/tsquery_op.o utils/adt/tsquery_rewrite.o<br>
utils/adt/tsquery_util.o utils/adt/tsrank.o utils/adt/tsvector.o<br>
utils/adt/tsvector_op.o utils/adt/tsvector_parser.o utils/adt/txid.o<br>
utils/adt/uuid.o utils/adt/varbit.o utils/adt/varchar.o<br>
utils/adt/varlena.o utils/adt/version.o utils/adt/windowfuncs.o<br>
utils/adt/xid.o utils/adt/xml.o utils/cache/attoptcache.o<br>
utils/cache/catcache.o utils/cache/evtcache.o utils/cache/inval.o<br>
utils/cache/plancache.o utils/cache/relcache.o utils/cache/relmapper.o<br>
utils/cache/relfilenodemap.o utils/cache/spccache.o<br>
utils/cache/syscache.o utils/cache/lsyscache.o utils/cache/typcache.o<br>
utils/cache/ts_cache.o utils/error/assert.o utils/error/elog.o<br>
utils/fmgr/dfmgr.o utils/fmgr/fmgr.o utils/fmgr/funcapi.o<br>
utils/hash/dynahash.o utils/hash/hashfn.o utils/hash/pg_crc.o<br>
utils/init/globals.o utils/init/miscinit.o utils/init/postinit.o<br>
utils/mb/encnames.o utils/mb/conv.o utils/mb/mbutils.o<br>
utils/mb/wchar.o utils/mb/wstrcmp.o utils/mb/wstrncmp.o<br>
utils/misc/guc.o utils/misc/help_config.o utils/misc/pg_rusage.o<br>
utils/misc/ps_status.o utils/misc/rls.o utils/misc/sampling.o<br>
utils/misc/superuser.o utils/misc/timeout.o utils/misc/tzparser.o<br>
utils/mmgr/aset.o utils/mmgr/mcxt.o utils/mmgr/portalmem.o<br>
utils/resowner/resowner.o utils/sort/logtape.o<br>
utils/sort/sortsupport.o utils/sort/tuplesort.o<br>
utils/sort/tuplestore.o utils/time/combocid.o utils/time/tqual.o<br>
utils/time/snapmgr.o utils/fmgrtab.o ../../src/timezone/localtime.o<br>
../../src/timezone/strftime.o ../../src/timezone/pgtz.o<br>
../../src/port/libpgport_srv.a ../../src/common/libpgcommon_srv.a<br>
-lcrypt -lm -o postgres<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
--<br>
greg<br>
</font></span></blockquote></div><br></div>