|
@@ -356,7 +356,8 @@ const char *hl_op_name( int op ) {
|
|
static char **hl_read_strings( hl_reader *r, int nstrings, int **out_lens ) {
|
|
static char **hl_read_strings( hl_reader *r, int nstrings, int **out_lens ) {
|
|
int size = hl_read_i32(r);
|
|
int size = hl_read_i32(r);
|
|
hl_code *c = r->code;
|
|
hl_code *c = r->code;
|
|
- char *sdata = (char*)hl_malloc(&c->alloc,sizeof(char) * size);
|
|
|
|
|
|
+ char *sbase = (char*)hl_malloc(&c->alloc,sizeof(char) * size);
|
|
|
|
+ char *sdata = sbase;
|
|
char **strings;
|
|
char **strings;
|
|
int *lens;
|
|
int *lens;
|
|
int i;
|
|
int i;
|
|
@@ -368,7 +369,7 @@ static char **hl_read_strings( hl_reader *r, int nstrings, int **out_lens ) {
|
|
strings[i] = sdata;
|
|
strings[i] = sdata;
|
|
lens[i] = sz;
|
|
lens[i] = sz;
|
|
sdata += sz;
|
|
sdata += sz;
|
|
- if( sdata >= sdata + size || *sdata )
|
|
|
|
|
|
+ if( sdata >= sbase + size || *sdata )
|
|
EXIT("Invalid string");
|
|
EXIT("Invalid string");
|
|
sdata++;
|
|
sdata++;
|
|
}
|
|
}
|