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
I cut my teeth on Small-C eons ago and c4 is an absolute delight and very clever. However, I did think the lvalue trick looked too fragile and indeed, if you generate just the right constant, like 9 or 10, you can trick it.
int main(int argc, char **argv) {
10 = 666;
}
This compiles and will lead to stack corruption.
Definitely not hard to fix and probably not worthwhile.
The text was updated successfully, but these errors were encountered:
When checking if the last generated instruction was a load, we have to
protected against all the other things that can look like a load.
Since we only ever care about the most recently generated load and we
always overwrite with another opcode it suffice to trace the address
of the most recently generated load.
When checking if the last generated instruction was a load, we have to
protected against all the other things that can look like a load.
Since we only ever care about the most recently generated load and we
always overwrite with another opcode it suffice to trace the address
of the most recently generated load.
I cut my teeth on Small-C eons ago and c4 is an absolute delight and very clever. However, I did think the lvalue trick looked too fragile and indeed, if you generate just the right constant, like 9 or 10, you can trick it.
This compiles and will lead to stack corruption.
Definitely not hard to fix and probably not worthwhile.
The text was updated successfully, but these errors were encountered: