]> granicus.if.org Git - graphviz/commit
fix: zero allocations performed via ALLOCATE
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 29 Jul 2020 00:43:58 +0000 (17:43 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 29 Jul 2020 00:43:58 +0000 (17:43 -0700)
commit7b386d7344d00c6c5de32523e859a060750d5f2c
treeea17f9324bff45ae03130873fadf01a029614393
parent3079239f3840c1f0576554f3f8e89b97c44e9110
fix: zero allocations performed via ALLOCATE

8d33fa030d308e6f5a4572a5b25bde4508757c31 refactored the site of a call to
vmnewof to remove an assumption that the returned allocation was zeroed. However
I failed to notice that the call to ALLOCATE (which eventually invokes vmnewof)
in exnewnode also relied on this assumption. This remained a latent issue until
84b2983edf458098bb6233368904265c92da4e65 whose changes meant the region returned
by vmnewof was no longer zeroed. The issue (now an active bug) still went
unnoticed until ea791d46aa1d0f15c483d424fdddabf8f3b61cb0 was merged, which
contained a test that ran `gvpr -f cmd/gvpr/lib/color </dev/null` that triggered
a read through a bad pointer that should have been zeroed during these
allocations.

To fix this, we conservatively zero the result of all calls to ALLOCATE,
ensuring the assumptions these calls may have previously had is now restored.
lib/expr/exgram.h
lib/expr/exparse.y