]> granicus.if.org Git - graphviz/commit
fix: use managed memory for Run’s _text member
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Tue, 13 Apr 2021 01:40:25 +0000 (18:40 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 19 Apr 2021 03:51:33 +0000 (20:51 -0700)
commit7e4e91da6aec9d7e179874f56daf18c0dcfa3bc8
tree77230a7657cf708da3d900f5b2f6aba6aa06ad02
parentcaa36107388b79325f33edb84031edcd0f34565e
fix: use managed memory for Run’s _text member

This removes the need to manually manage memory for this member but, more
importantly makes this class copy-safe. The implicit copy constructor of this
class would copy the pointer in the _text member. When either the original
object or the new copy was deleted, the pointer would be freed leaving its
duplicate in the other copy dangling. Any attempt to access this would result in
use-after-free and deleting the object would cause a double-free.

Following this change, it is safe to copy a Run object. This issue was latent,
because no existing code causes a Run object to be copied.
plugin/visio/VisioText.cpp
plugin/visio/VisioText.h