Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • CMake CMake
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 4,164
    • Issues 4,164
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 19
    • Merge requests 19
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • External wiki
    • External wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CMakeCMake
  • CMakeCMake
  • Issues
  • #18031
Closed
Open
Issue created May 25, 2018 by Daniel Wyatt@dewyattContributor

CPackFreeBSD segmentation fault with newer libpkg

The CMake 3.11.2 FreeBSD CPack generator results in a segfault for me on FreeBSD 11.1-RELEASE-p10 with pkg 1.10.5.

The crash occurs here because pkg_init is never called in cmCPackFreeBSDGenerator.cxx, so it ends up calling strdup on NULL (pkg_config_get("ABI")).

It seems this behavior changed recently in libpkg: https://github.com/freebsd/pkg/commit/2d1e456492bbc76b4d7604b1c1aef79f21738b41#diff-a050e86b9833d3fa0e42b392b87392a0

The backtrace looks like:

#0  strlen (str=0x0) at /usr/src/lib/libc/string/strlen.c:100
#1  0x0000000803025b72 in strdup (str=0x0) at /usr/src/lib/libc/string/strdup.c:46
#2  0x00000008022427a5 in xstrdup (str=0x0) at xmalloc.h:30
#3  0x00000008022417f2 in pkg_load_metadata (pkg=0x80708ce00, 
    mfile=0x807025df0 "/root/tst-build/_CPack_Packages/FreeBSD/FREEBSD/tst-0.0.1/+MANIFEST", md_dir=0x0, plist=0x0, 
    rootdir=0x80704d300 "/root/tst-build/_CPack_Packages/FreeBSD/FREEBSD/tst-0.0.1", testing=false) at pkg_create.c:357
#4  0x000000080224155d in pkg_create_from_manifest (outdir=0x80704d100 "/root/tst-build/_CPack_Packages/FreeBSD/FREEBSD/", format=TXZ, 
    rootdir=0x80704d300 "/root/tst-build/_CPack_Packages/FreeBSD/FREEBSD/tst-0.0.1", 
    manifest=0x807025df0 "/root/tst-build/_CPack_Packages/FreeBSD/FREEBSD/tst-0.0.1/+MANIFEST", plist=0x0) at pkg_create.c:240
#5  0x00000000004730c1 in std::__1::__tree_remove<std::__1::__tree_node_base<void*>*> ()
#6  0x0000000000429d42 in std::__1::__tree_balance_after_insert<std::__1::__tree_node_base<void*>*> ()
#7  0x000000000040fbbe in ?? ()
#8  0x000000000040c01f in ?? ()
#9  0x0000000800ab3000 in ?? ()
#10 0x0000000000000000 in ?? ()
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking