You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello, the SLEIGH specification is not that clear on what happens to exported temporary varnodes. As far as i understood, a temporary varnode is only valid for the duration of the constructor in question, and afterwards, no guarantee is made to the contents of the varnode.
For me this now raises the question what happens to the data region that was reserved for this varnode. Is every local variable allocated its own unique region in the temporary address space? If so, this would mean that the temp address space is gigantic. Is this intended? If not, this would entail that when exporting a temp varnode, the parent constructor that uses the exported value might accidentally override the temporary, before it accesses it, since there might be a different temporary that was allocated to this region. Or, as a third alternative, are the temporaries allocated uniquely for each instantiation of constructors, i.e., is the pcode pasted together, and only then the temporaries allocated?
I hope i'm not sounding too confusing right now. If you need clarification on what i'm brambling on about, please let me know.
This discussion was converted from issue #7164 on November 07, 2024 14:52.
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello, the SLEIGH specification is not that clear on what happens to exported temporary varnodes. As far as i understood, a temporary varnode is only valid for the duration of the constructor in question, and afterwards, no guarantee is made to the contents of the varnode.
For me this now raises the question what happens to the data region that was reserved for this varnode. Is every local variable allocated its own unique region in the temporary address space? If so, this would mean that the temp address space is gigantic. Is this intended? If not, this would entail that when exporting a temp varnode, the parent constructor that uses the exported value might accidentally override the temporary, before it accesses it, since there might be a different temporary that was allocated to this region. Or, as a third alternative, are the temporaries allocated uniquely for each instantiation of constructors, i.e., is the pcode pasted together, and only then the temporaries allocated?
I hope i'm not sounding too confusing right now. If you need clarification on what i'm brambling on about, please let me know.
Beta Was this translation helpful? Give feedback.
All reactions