Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
G
graphviz
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 643
    • Issues 643
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 20
    • Merge requests 20
  • Requirements
    • Requirements
    • List
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • graphviz
  • graphviz
  • Issues
  • #1994

Closed
Open
Created Apr 04, 2021 by Magnus Jacobsson@magjacOwner

AddressSanitizer: strcpy-param-overlap in gvconfig_libdir when running dot -c

Steps to reproduce

Build using Cmake with address sanitizer and then run dot -c or cpack in the build directory, e.g. with this script: bgcs

Expected Behaviour

No error.

Actual Behaviour

==1409075==ERROR: AddressSanitizer: strcpy-param-overlap: memory ranges [0x7eff563f2f80,0x7eff563f2fe2) and [0x7eff563f2fc9, 0x7eff563f302b) overlap
    #0 0x7eff56491ef1  (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x9bef1)
    #1 0x7eff5621f43d in gvconfig_libdir (/home/magjac/graphviz/build/_CPack_Packages/Linux/ZIP/Graphviz-2.47.1~dev.20210404.0547-Linux/lib/libgvc.so.6+0x7743d)
    #2 0x7eff562200be in gvconfig (/home/magjac/graphviz/build/_CPack_Packages/Linux/ZIP/Graphviz-2.47.1~dev.20210404.0547-Linux/lib/libgvc.so.6+0x780be)
    #3 0x7eff5621c9e1 in gvContextPlugins (/home/magjac/graphviz/build/_CPack_Packages/Linux/ZIP/Graphviz-2.47.1~dev.20210404.0547-Linux/lib/libgvc.so.6+0x749e1)
    #4 0x55fd0658ca06 in main (/home/magjac/graphviz/build/_CPack_Packages/Linux/ZIP/Graphviz-2.47.1~dev.20210404.0547-Linux/bin/dot+0x2a06)
    #5 0x7eff55f9d0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
    #6 0x55fd0658c46d in _start (/home/magjac/graphviz/build/_CPack_Packages/Linux/ZIP/Graphviz-2.47.1~dev.20210404.0547-Linux/bin/dot+0x246d)

0x7eff563f2f80 is located 0 bytes inside of global variable 'line' defined in '/home/magjac/graphviz/lib/gvc/gvconfig.c:263:17' (0x7eff563f2f80) of size 1024
0x7eff563f2fc9 is located 73 bytes inside of global variable 'line' defined in '/home/magjac/graphviz/lib/gvc/gvconfig.c:263:17' (0x7eff563f2f80) of size 1024
SUMMARY: AddressSanitizer: strcpy-param-overlap (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x9bef1) 

OS Version

Ubuntu 20.04.

Graphviz Version

Built from a3c42725.

Additional info

dot -c is run as part of CPack (since !1581 (merged)).

The culprit is https://gitlab.com/graphviz/graphviz/-/blob/main/lib/gvc/gvconfig.c#L341

I guess the correct solution is to use memmove.

Edited Apr 05, 2021 by Magnus Jacobsson
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking