HomePhabricator

embryo: fix a integer(cell) overflow problem

Authored by id213sin on Aug 3 2020, 10:47 PM.

Description

embryo: fix a integer(cell) overflow problem

Summary:
The most of functions for embryo based on cell(int) types.
addvariable(), defsymbol(), modstk() and etc.
Because of this, if embryo script has a really big(INT_MAX / 4) stack variable,
integer overflow problem has been happened.
@fix

Test Plan:
Put a script in your EDC like the following code.
Build it and try to access the variable.
Or check the writen HEX value by embryo_cc.

script {

// It's size is 1,000,000,000.
// Remember, INT_MAX is 2,147,483,647.
new my_big_variable[1000000000];
...

}

Reviewers: cedric, woohyun, raster, eunue, SanghyeonLee

Reviewed By: eunue, SanghyeonLee

Subscribers: cedric, reviewers, committers

Tags: efl

Differential Revision: https://phab.enlightenment.org/D12081

Details