|Anonymous | Login||2017-11-21 22:40 EST|
|Main | My View | View Issues | Change Log | Roadmap | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002389||graphviz||Build/Install||public||2013-11-01 15:59||2013-11-06 12:46|
|Summary||0002389: graphviz uses a fuzzy check whether alloca(3) uses malloc(3), which fails in some cases|
|Description||I have been asked to submit this bug report to you, on behalf of a fellow MacPorts developer.|
Graphviz uses a check in `lib/vmalloc/features/vmalloc` that is supposed to find out whether `alloca(3)` is internally using `malloc(3)`. To do this, this check provides a custom implementation of `malloc(3)` and assumes that if this implementation is going to be called it was called by `alloca(3)`.
However, this assumption doesn't hold in all cases, e.g. it breaks when having `DYLD_INSERT_LIBRARIES` is set, as is the case for [MacPorts'] trace mode, because the Mac OS loader `dyld` internally calls `malloc(3)`, causing the check to fail.
The check should instead use a global volatile variable to check whether the current call to `malloc(3)` happened while trying to use `alloca(3)`. The overriden `malloc(3)` should behave like the standard one in all other cases.
The attached patch fixes this. Additional checks for `dlsym(3)` and `dlfcn.h` might be required.
|Tags||No tags attached.|
|Attached Files||patch-lib__vmalloc__features__vmalloc-dyld-uses-malloc.diff [^] (628 bytes) 2013-11-01 15:59 [Show Content]|
|Patch applied. Thank you.|
|John added the patches, and erg tweaked the vmalloc file to make sure dflcn.h exists.|
|2013-11-01 15:59||ryandesign||New Issue|
|2013-11-01 15:59||ryandesign||File Added: patch-lib__vmalloc__features__vmalloc-dyld-uses-malloc.diff|
|2013-11-01 16:23||ellson||Note Added: 0000594|
|2013-11-06 12:46||erg||Note Added: 0000598|
|2013-11-06 12:46||erg||Assigned To||=> ellson|
|2013-11-06 12:46||erg||Status||new => resolved|
|2013-11-06 12:46||erg||Resolution||open => fixed|
|MantisBT 1.2.5[^] Copyright © 2000 - 2011 MantisBT Group|