Переглянути джерело

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
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
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
rm -rf *~ *.dSYM

+ 1
- 1
demofiles/segmentation-fault.c Переглянути файл

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

+ 1
- 1
demofiles/use-after-free.c Переглянути файл

@ -6,7 +6,7 @@
int main() {
int *ptr = malloc(sizeof(*ptr));
assert(ptr);
assert(ptr != 0);
*ptr = 42;
free(ptr);
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);
printf("\n");
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;
}

Завантаження…
Відмінити
Зберегти