浏览代码

fixed bounds checks (close #71)

Nicolas Cannasse 8 年之前
父节点
当前提交
074f110bee
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      src/code.c

+ 3 - 2
src/code.c

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