浏览代码

handle array indexing and integer multiplication

master
Ian Piumarta 3 个月前
父节点
当前提交
93e8020fff
共有 5 个文件被更改,包括 404 次插入223 次删除
  1. +2
    -2
      Makefile
  2. +1
    -1
      demofiles/segmentation-fault.c
  3. +1
    -1
      demofiles/use-after-free.c
  4. +393
    -219
      main.leg
  5. +7
    -0
      test.txt

+ 2
- 2
Makefile 查看文件

@ -15,10 +15,10 @@ test : main
./main -vv test.txt ./main -vv test.txt
demo : main demo : main
for i in demofiles/*.c; do echo $$i; ./main -x < $$i; done
for i in demofiles/*.c; do echo $$i; ./main $$i; done
demov : main demov : main
for i in demofiles/*.c; do echo $$i; ./main -x -vv < $$i; done
for i in demofiles/*.c; do echo $$i; ./main -vv $$i; done
spotless : clean spotless : clean
rm -rf *~ *.dSYM rm -rf *~ *.dSYM

+ 1
- 1
demofiles/segmentation-fault.c 查看文件

@ -3,7 +3,7 @@
#include <stdio.h> #include <stdio.h>
int main() { int main() {
int *ptr = NULL;
int *ptr = (void *)0; // NULL;
*ptr = 42; *ptr = 42;
return 0; return 0;
} }

+ 1
- 1
demofiles/use-after-free.c 查看文件

@ -6,7 +6,7 @@
int main() { int main() {
int *ptr = malloc(sizeof(*ptr)); int *ptr = malloc(sizeof(*ptr));
assert(ptr);
assert(ptr != 0);
*ptr = 42; *ptr = 42;
free(ptr); free(ptr);
printf("%d\n", *ptr); // use after free printf("%d\n", *ptr); // use after free

+ 393
- 219
main.leg
文件差异内容过多而无法显示
查看文件


+ 7
- 0
test.txt 查看文件

@ -30,6 +30,13 @@ int main(int argc, char **argv)
while (x > 0) printf("%d ", --x); while (x > 0) printf("%d ", --x);
printf("\n"); printf("\n");
printf("%d\n", sizeof(char *)); printf("%d\n", sizeof(char *));
int array[5];
printf("array size %d\n", sizeof(array));
int i;
for (i = 0; i < 5; ++i) array[i] = i*i;
for (i = 0; i < 5; ++i) printf("%d\n", array[i]);
return 0; return 0;
} }

正在加载...
取消
保存