From bce39b45977de9ffa51f7ff165987eb5f410f79e Mon Sep 17 00:00:00 2001 From: Karoliine Holter Date: Fri, 13 Sep 2024 12:20:03 +0300 Subject: [PATCH 1/6] Add paper example --- .../debt-24-demo/paper-example/example.c | 38 +++++++++++++++++++ .../debt-24-demo/paper-example/goblint.json | 22 +++++++++++ .../debt-24-demo/paper-example/gobpie.json | 6 +++ 3 files changed, 66 insertions(+) create mode 100644 adb_examples/debt-24-demo/paper-example/example.c create mode 100644 adb_examples/debt-24-demo/paper-example/goblint.json create mode 100644 adb_examples/debt-24-demo/paper-example/gobpie.json diff --git a/adb_examples/debt-24-demo/paper-example/example.c b/adb_examples/debt-24-demo/paper-example/example.c new file mode 100644 index 0000000..6e0bd49 --- /dev/null +++ b/adb_examples/debt-24-demo/paper-example/example.c @@ -0,0 +1,38 @@ +#include +#include + +pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +typedef enum { PUBLISH, CACHE } ThreadAction; +int global; + +int f(ThreadAction action) { + int cache = 0; + switch (action) { + case CACHE: + printf("Store in local cache!\n"); + cache = 42; + break; // remove for flawed version + case PUBLISH: + printf("Publish work!\n"); + global = 42; + } +} + +void *t(void *arg) { + if (pthread_mutex_lock(&mutex)) { + f(CACHE); + } else { + f(PUBLISH); + pthread_mutex_unlock(&mutex); + } +} + + +int main() { + pthread_t t1, t2; + pthread_create(&t1, NULL, t, NULL); + pthread_create(&t2, NULL, t, NULL); + pthread_join(t1, NULL); + pthread_join(t2, NULL); + return 0; +} diff --git a/adb_examples/debt-24-demo/paper-example/goblint.json b/adb_examples/debt-24-demo/paper-example/goblint.json new file mode 100644 index 0000000..5c67c82 --- /dev/null +++ b/adb_examples/debt-24-demo/paper-example/goblint.json @@ -0,0 +1,22 @@ +{ + "files": [ + "example.c" + ], + "ana": { + "int": { + "def_exc" : false, + "interval": true + } + }, + "sem": { + "lock": { + "fail": true + } + }, + "warn": { + "imprecise": false, + "deadcode": false, + "info": false + }, + "allglobs": true +} diff --git a/adb_examples/debt-24-demo/paper-example/gobpie.json b/adb_examples/debt-24-demo/paper-example/gobpie.json new file mode 100644 index 0000000..0283899 --- /dev/null +++ b/adb_examples/debt-24-demo/paper-example/gobpie.json @@ -0,0 +1,6 @@ +{ + "goblintConf" : "goblint.json", + "abstractDebugging": true, + "showCfg": true, + "incrementalAnalysis": false +} From 0b8cdc720342b6ad0e2e344ef1e085048d048745 Mon Sep 17 00:00:00 2001 From: Karoliine Holter Date: Fri, 13 Sep 2024 12:22:24 +0300 Subject: [PATCH 2/6] Add some additional materials --- adb_examples/debt-24-demo/README.md | 43 +++++ .../debt-24-demo/context-sensitivity.c | 12 ++ adb_examples/debt-24-demo/fun-pointers.c | 17 ++ adb_examples/debt-24-demo/path-sensitivity.c | 18 ++ .../debt-24-demo/smtprc-example/gobpie.json | 6 + .../smtprc-2.0.3-extraction/Makefile | 131 +++++++++++++++ .../compile_commands.json | 158 ++++++++++++++++++ .../smtprc-2.0.3-extraction/options.c | 24 +++ .../smtprc-2.0.3-extraction/options.h | 113 +++++++++++++ .../smtprc-2.0.3-extraction/options.o | Bin 0 -> 2824 bytes .../smtprc-2.0.3-extraction/parse_args.c | 126 ++++++++++++++ .../smtprc-2.0.3-extraction/parse_args.h | 43 +++++ .../smtprc-2.0.3-extraction/parse_args.o | Bin 0 -> 14080 bytes .../parse_config_files.c | 57 +++++++ .../parse_config_files.h | 31 ++++ .../parse_config_files.o | Bin 0 -> 6296 bytes .../smtprc-2.0.3-extraction/relay.h | 134 +++++++++++++++ .../smtprc-2.0.3-extraction/scan_engine.c | 137 +++++++++++++++ .../smtprc-2.0.3-extraction/scan_engine.h | 32 ++++ .../smtprc-2.0.3-extraction/scan_engine.o | Bin 0 -> 16096 bytes .../smtprc-2.0.3-extraction/smtprc | Bin 0 -> 34616 bytes .../smtprc-2.0.3-extraction/smtprc.c | 39 +++++ .../smtprc-2.0.3-extraction/smtprc.o | Bin 0 -> 6320 bytes .../smtprc-2.0.3-extraction/utils.c | 62 +++++++ .../smtprc-2.0.3-extraction/utils.h | 57 +++++++ .../smtprc-2.0.3-extraction/utils.o | Bin 0 -> 9464 bytes .../smtprc-example/smtprc-extraction.json | 82 +++++++++ 27 files changed, 1322 insertions(+) create mode 100644 adb_examples/debt-24-demo/README.md create mode 100644 adb_examples/debt-24-demo/context-sensitivity.c create mode 100644 adb_examples/debt-24-demo/fun-pointers.c create mode 100644 adb_examples/debt-24-demo/path-sensitivity.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/gobpie.json create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/Makefile create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.h create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.o create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.h create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.o create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.h create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.o create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/relay.h create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.h create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.o create mode 100755 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc.o create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.c create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.h create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.o create mode 100644 adb_examples/debt-24-demo/smtprc-example/smtprc-extraction.json diff --git a/adb_examples/debt-24-demo/README.md b/adb_examples/debt-24-demo/README.md new file mode 100644 index 0000000..56a4513 --- /dev/null +++ b/adb_examples/debt-24-demo/README.md @@ -0,0 +1,43 @@ +# Abstract Debugging with GobPie demo (DEBT'24) + +This folder contains the materials for the demo presentation of Abstract Debugging +with GobPie at the [Second Workshop on Future Debugging Techniques (DEBT'24)](https://conf.researchr.org/details/issta-ecoop-2024/debt-2024-papers/4/Abstract-Debugging-with-GobPie). + +### :movie_camera: + +There is a pre-recorded [video](https://youtu.be/KtLFdxMAdD8) of using the abstract debugger on the source code of SMTP Relay Checker, showcasing how to debug and fix a data race warning using the abstract debugger. + +### :page_facing_up: + +Cite with: +``` +@inproceedings{10.1145/3678720.3685320, + author = {Karoliine Holter and Juhan Oskar Hennoste and Simmo Saan and Patrick Lam and Vesal Vojdani}, + title = {Abstract Debugging with GobPie}, + year = {2024}, + isbn = {979-8-4007-1110-7/24/09}, + publisher = {Association for Computing Machinery}, + address = {New York, NY, USA}, + url = {https://doi.org/10.1145/3678720.3685320}, + doi = {10.1145/3678720.3685320}, + booktitle = {Proceedings of the 2nd ACM International Workshop on Future Debugging Techniques}, + numpages = {2}, + keywords = {Automated Software Verification, Abstract Interpretation, Explainability, Visualization, Data Race Detection}, + location = {Vienna, Austria}, + series = {DEBT 2024} +} +``` + +### Examples + +The directory contains the following example programs: + +1. The [example program](./paper-example/example.c) illustrated in the paper. +2. An [extracted version](./smtprc-example) of the Smtp Open Relay Checker ([smtprc](https://sourceforge.net/projects/smtprc/files/smtprc/smtprc-2.0.3/)). + Some parts of the code in this project were omitted to speed up the analysis for demonstration purposes. + +Some illustrative example programs for demonstrating the abstract debugger's behavior
+ +- with [context-sensitive](context-sensitivity.c) analysis results; +- with [path-sensitive](path-sensitivity.c) analysis results; +- in case of function calls through [function pointers](fun-pointers.c). diff --git a/adb_examples/debt-24-demo/context-sensitivity.c b/adb_examples/debt-24-demo/context-sensitivity.c new file mode 100644 index 0000000..1ce25d0 --- /dev/null +++ b/adb_examples/debt-24-demo/context-sensitivity.c @@ -0,0 +1,12 @@ +void f(int x) { + assert(x - 1 < x); // Using breakpoint: two different contexts will be displayed in the "call stack" panel + if (x > 1 ) { + printf("Hello!"); + } +} + +int main() { + f(rand() % 10); + f(42); + return 0; +} \ No newline at end of file diff --git a/adb_examples/debt-24-demo/fun-pointers.c b/adb_examples/debt-24-demo/fun-pointers.c new file mode 100644 index 0000000..0dc16b1 --- /dev/null +++ b/adb_examples/debt-24-demo/fun-pointers.c @@ -0,0 +1,17 @@ +void f(int x) { + printf("%i", x); +} + +void g(int x) { + printf("%i", x + 100); +} + +int main() { + int i = rand() % 100; + void (*fp)(int); + if (i >= 50) + fp = &f; + else + fp = &g; + fp(i - 30); // Using breakpoint: step into is unambiguous and requests "step into target" +} \ No newline at end of file diff --git a/adb_examples/debt-24-demo/path-sensitivity.c b/adb_examples/debt-24-demo/path-sensitivity.c new file mode 100644 index 0000000..165fd3b --- /dev/null +++ b/adb_examples/debt-24-demo/path-sensitivity.c @@ -0,0 +1,18 @@ +#include + +pthread_mutex_t mutex; + +int main(void) { + int do_work = rand(); + int work = 0; + if (do_work) { + pthread_mutex_lock(&mutex); + } + + // ... + + if (do_work) { + work++; + pthread_mutex_unlock(&mutex); + } +} \ No newline at end of file diff --git a/adb_examples/debt-24-demo/smtprc-example/gobpie.json b/adb_examples/debt-24-demo/smtprc-example/gobpie.json new file mode 100644 index 0000000..5901fcb --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/gobpie.json @@ -0,0 +1,6 @@ +{ + "goblintConf" : "smtprc.json", + "abstractDebugging": true, + "incrementalAnalysis": false, + "showCfg": true +} diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/Makefile b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/Makefile new file mode 100644 index 0000000..142ff93 --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/Makefile @@ -0,0 +1,131 @@ +CC=gcc +CFLAGS=-Wall -g +INSTALL_PROG=install -c +MKDIR=mkdir -p +REMOVE=rm -rf +LIBS=-lsocket -lnsl -lrt -lpthread + + +all: freebsd +install: freebsd_install +uninstall: freebsd_uninstall + + + +linux: freebsd_build +linux_install: freebsd_install_start +linux_uninstall: freebsd_uninstall_start + +freebsd: freebsd_build +freebsd_install: freebsd_install_start +freebsd_uninstall: freebsd_uninstall_start + +solaris: solaris_err +solaris_install: solaris_err +solaris_uninstall: solaris_err + +solaris_err: + @echo " " + @echo " " + @echo " " + @echo " Unfortunatly SmtpRC does not yet work correctly" + @echo " under Solaris." + @echo " " + @echo " " + @echo " To use SmtpRC you must run it on a *BSD or Linux" + @echo " based OS" + @echo " " + @echo " " + @echo " " + @echo " " + @echo " " + @echo " " + +freebsd_build: smtprc.o scan_engine.o options.o utils.o parse_config_files.o parse_args.o + ${CC} $(CFLAGS) -c smtprc.c scan_engine.c options.c utils.c parse_config_files.c parse_args.c -pthread + ${CC} -o smtprc smtprc.o scan_engine.o options.o utils.o parse_config_files.o parse_args.o -pthread + +freebsd_install_start: + ${INSTALL_PROG} smtprc /usr/local/bin/smtprc + ${INSTALL_PROG} gsmtprc /usr/local/bin/gsmtprc + -${MKDIR} /usr/local/etc/smtprc + ${INSTALL_PROG} auto.conf /usr/local/etc/smtprc/auto.conf + ${INSTALL_PROG} email.tmpl /usr/local/etc/smtprc/email.tmpl + ${INSTALL_PROG} rcheck.conf /usr/local/etc/smtprc/rcheck.conf + -${MKDIR} /usr/local/share/doc/smtprc + ${INSTALL_PROG} README /usr/local/share/doc/smtprc/README + ${INSTALL_PROG} FAQ /usr/local/share/doc/smtprc/FAQ + ${INSTALL_PROG} smtprc.1 /usr/local/man/man1/smtprc.1 + ${INSTALL_PROG} gsmtprc.1 /usr/local/man/man1/gsmtprc.1 + +freebsd_uninstall_start: + -${REMOVE} /usr/local/etc/smtprc + -${REMOVE} /usr/local/share/doc/smtprc + -${REMOVE} /usr/local/bin/smtprc + -${REMOVE} /usr/local/man/man1/smtprc.1 + -${REMOVE} /usr/local/man/man1/gsmtprc.1 + -${REMOVE} /usr/local/bin/gsmtprc + +solaris_build: smtprc.o scan_engine.o options.o utils.o parse_config_files.o parse_args.o + ${CC} $(CFLAGS) -c smtprc.c scan_engine.c options.c utils.c parse_config_files.c parse_args.c + ${CC} -o smtprc smtprc.o scan_engine.o options.o utils.o parse_config_files.o parse_args.o ${LIBS} + +solaris_install_start: + ${INSTALL_PROG} /usr/local/bin smtprc + -${MKDIR} /usr/local/etc/smtprc + ${INSTALL_PROG} /usr/local/etc/smtprc auto.conf + ${INSTALL_PROG} /usr/local/etc/smtprc email.tmpl + ${INSTALL_PROG} /usr/local/etc/smtprc rcheck.conf + -${MKDIR} /usr/local/doc/smtprc + ${INSTALL_PROG} /usr/local/doc/smtprc README + ${INSTALL_PROG} /usr/local/doc/smtprc FAQ + ${INSTALL_PROG} /usr/share/man/man1 smtprc.1 + ${INSTALL_PROG} /usr/share/man/man1 gsmtprc.1 + ${INSTALL_PROG} /usr/local/bin gsmtprc + +solaris_uninstall_start: + -${REMOVE} /usr/local/etc/smtprc + -${REMOVE} /usr/local/share/doc/smtprc + -${REMOVE} /usr/local/bin/smtprc + -${REMOVE} /usr/local/man/man1/smtprc.1 + -${REMOVE} /usr/local/man/man1/gsmtprc.1 + -${REMOVE} /usr/local/bin/gsmtprc + + +clean: + -${REMOVE} *.o smtprc + +message: + @echo " " + @echo " " + @echo " " + @echo " You need to specify what OS to make...." + @echo " " + @echo " The three types currently supported are:" + @echo " " + @echo " " + @echo " freebsd" + @echo " linux" + @echo " solaris" + @echo " " + @echo " " + @echo " " + @echo " Type make to bulid the package and then" + @echo " make _install to install the package" + @echo " (Swapping for one of the supported types" + @echo " " + @echo " " + @echo " Example: " + @echo " " + @echo " make freebsd" + @echo " make freebsd_install" + @echo " make clean" + @echo " " + @echo " " + @echo " Also:" + @echo " make freebsd_unistall" + @echo " " + @echo " " + @echo " " + + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json new file mode 100644 index 0000000..ad816ce --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json @@ -0,0 +1,158 @@ +[ + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-o", + "smtprc.o", + "smtprc.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/smtprc.c", + "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/smtprc.o" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-o", + "scan_engine.o", + "scan_engine.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/scan_engine.c", + "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/scan_engine.o" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-o", + "options.o", + "options.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/options.c", + "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/options.o" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-o", + "utils.o", + "utils.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/utils.c", + "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/utils.o" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-o", + "parse_config_files.o", + "parse_config_files.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_config_files.c", + "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_config_files.o" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-o", + "parse_args.o", + "parse_args.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_args.c", + "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_args.o" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-pthread", + "smtprc.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/smtprc.c" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-pthread", + "scan_engine.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/scan_engine.c" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-pthread", + "options.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/options.c" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-pthread", + "utils.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/utils.c" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-pthread", + "parse_config_files.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_config_files.c" + }, + { + "arguments": [ + "/usr/bin/gcc", + "-Wall", + "-g", + "-c", + "-pthread", + "parse_args.c" + ], + "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", + "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_args.c" + } +] diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.c b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.c new file mode 100644 index 0000000..474834c --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.c @@ -0,0 +1,24 @@ +/*************************************************************************** + options.c - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + +#include "options.h" +#include "utils.h" + +extern struct options o; +extern struct flags f; + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.h b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.h new file mode 100644 index 0000000..62aa32d --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.h @@ -0,0 +1,113 @@ +/*************************************************************************** + options.h - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef SMTPRC_OPTIONS_H +#define SMTPRC_OPTIONS_H + +/****************************includes**************************************/ + +#include +#include +#include +#include + + +/*****************************structures***********************************/ + +struct options { + + //config options + unsigned int time; //timestamp + unsigned short int number_of_threads; //max number of threads + unsigned short int c_timeout; //connect timeout + unsigned short int r_timeout; //read timeout + unsigned short int m_timeout; //wait for mail timeout + unsigned short int cur_threads; //current number of threads + unsigned short int no_rules; //number of rules to scan with; + unsigned long no_hostnames; //number of hosts to scan + unsigned long cur_host; //current host being scanned + + pthread_t *tid; + + char *email_address; //email_addres to relay to + char *ip_range; //ip address range + char *ip_list; //ip list file + char *mailbox; //mailbox file + char *auto_config_file; //auto config filename + char *generate_file; //filename to generate auto config file + char *config_file; //relay check config file + char *email_template; //email template to be sent through servers being checked + char *name; //name part of the email address specified with -b + char *domain; //domain part of the email address specified with -b + + //output file formats + char *html_file; //output html filename + char *html_path; //path to output html file + char *xml_file; //output xml filename + char *xml_path; //path to xml file + char *machine_file; //output machine readable filename + char *machine_path; //path to machine file + char *text_file; //output text filename + char *text_path; //path to text file + + //email template //email body to send through servers + char *email; //email subject to send through servers + char *email_subject; + + //total time taken + unsigned char hours; + unsigned char mins; + unsigned char seconds; + +}; + + +//If a flag is set to TRUE then that option +//has been selected. +struct flags { + + unsigned char debug; //debugging mode + unsigned char verbose; //be verbose + unsigned char check_mailbox; //check mailbox after scanning + unsigned char maildir; //mailbox format is maildir + unsigned char mbox; //mailbox format is maildir + unsigned char pop; //mailbox format is maildir + unsigned char auto_config; //auto config file specified + unsigned char generate_config; //generate a suto config file + unsigned char output_html; //output to html + unsigned char output_text; //output to text file + unsigned char output_machine; //output to machine readable format + unsigned char output_xml; //output to xml + unsigned char resolve_hostnames; //try to resolve ips to hostnames + unsigned char display_only_ips; //only output ips not hostnames + unsigned char ip_range; //ip list file specified. + unsigned char ip_list; //got ip list + unsigned char send_email; //send email through servers + unsigned char config_file; //got config file + unsigned char email_template; //got email template + unsigned char got_name_macro; //--NAME-- macro specified in the config file + unsigned char got_email; //got email address specified with -b + unsigned char threads; //threads have been specified + unsigned char display_all; //display all results even those that fail + +}; + + +/*****************************prototypes************************************/ + +#endif + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.o new file mode 100644 index 0000000000000000000000000000000000000000..0fdc0eb8b7d5a0d23d9e07688cff3710c81040bc GIT binary patch literal 2824 zcmb_dL2uMX6dtcPl&~ZuL~0PBTDK)Mm1=J`jRHjqS}9PFsAyFw2TqCCJF!>YwO97I zO;ibfKrcP?+!Kc$dheB=0Gv4X$Tb|eaDewb?|GfU;(!=w=e_s6@6CHNo;UmO)(_t| zEKBgP#0@dE7!~5qsj1#8)Sg%p=S2kijId54)WGR8oOoELKS9-Q&J1G(tQoXe=pd_6 zP^_jFR*}bQXeL>D6=7W#t=5f}JrAiCt=0LZmfc=yFDyd>@?aU4;8#>4ilQ*%iQ$4Z z1HM&|mSw%3pF@Frh94;HV*3rN-8iQYB9F6S7|Vf!dl)5g=$t@GBZ&M|5LN3@lBy!= z_Pt$ar+d}ucD+q+-Eqe%kL7kKW0?*EF#R-$whymuxm%l#8#?ZRpB=?PlqPYKXKo(< zHjD?Z^7|v1fiqKn@QXW16D0$cq;95wh*8=RjQlKO_b`dU5gb%(y@z)L+wS04J~$w;!f z;jMe$ew;<7HHq6hJJ+4H-J&Qucekr+>^|6loSR=0T-=T(%nR_tdk0?&Z_s1JZ1}xz z;1y|#<2Q928$5Nx7L{hI5Nt79v8JjmT2rH<+2U-)BDHb^h;R>_0lm7HIie$ud)^`Y zdFi(gxgR3IFu(tpiL!*Knhk7-Ye`N z8IL8r2VM*>jR#!;FAcmrWQTF?!5cJ@sXF4~KU}UrD1LH2M_#GNiXrKGlqlXe#Hx23 zojsgth8h1AaIjZCG`3cxoCdED0*h>v|@ zu8FRH$$y0;3zPd3I7|$=&nUnl$-?Af-__NB2b&58*NOGxKfPK105Ee+fW%9jVBq;y zhsoUoXI=h%%D+y*m>*wRGyeoIT$6dA7UN4wv}`0~ljZNgM%|3R-q7p(twlL=9Lqnz zQy2f7;`zPc1vri+z8|bJ2W8W|(Bw3^j{wK-Lg|PF=S1;NiD-q-k6~QTj78rX#s5RZ iMUZvhAHPXmsZR(r{{hYVaoxK3Kk57bNBLQp@oxd$EEGim literal 0 HcmV?d00001 diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.c b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.c new file mode 100644 index 0000000..ec83e33 --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.c @@ -0,0 +1,126 @@ +/*************************************************************************** + parse_args.c - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "parse_args.h" +#include "utils.h" + +struct options o; +struct flags f; + + +void parse_args(int argc, char * const *argv) { + + + char c; + + while((c = getopt(argc, argv, "ab:c:de:f:g:hi:j:k:l:m:no:p:qr:s:tu:vw:x:y:"))!=-1) { + + + switch(c) { + case 'a': //display all results even those that pass + f.display_all = TRUE; + break; + case 'b': //email addy to use to replace --NAME-- --DOMAIN-- + f.send_email = TRUE; + o.email_address=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.email_address, optarg, strlen(optarg)); + o.email_address[strlen(optarg)] = '\0'; + break; + case 'c': //Specify the config file to use + f.config_file = TRUE; + //o.config_file=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.config_file, optarg, strlen(optarg)); + o.config_file[strlen(optarg)] = '\0'; + break; + case 'd': //Switch on DEBUG MODE + f.debug = TRUE; + break; + case 'e': //Specify a local mailbox + f.check_mailbox = TRUE; + f.mbox = TRUE; + o.mailbox=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.mailbox, optarg, strlen(optarg)); + o.mailbox[strlen(optarg)] = '\0'; + break; + case 'i': //specify an ip list + f.ip_list = TRUE; + o.ip_list=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.ip_list, optarg, strlen(optarg)); + o.ip_list[strlen(optarg)] = '\0'; + break; + case 'j': //specify an auto config file + f.auto_config = TRUE; + o.auto_config_file=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.auto_config_file, optarg, strlen(optarg)); + o.auto_config_file[strlen(optarg)] = '\0'; + break; + case 'k': //generate a config file + f.generate_config = TRUE; + o.generate_file=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.generate_file, optarg, strlen(optarg)); + o.generate_file[strlen(optarg)] = '\0'; + break; + case 'm': //TIME OUT before checking mail file + o.m_timeout = atoi(optarg); + break; + case 'n': //Resolve hostnames + f.resolve_hostnames = TRUE; + break; + case 'o': //PRINT OUTPUT IN MACHINE READABLE FORMAT + f.output_machine = TRUE; + o.machine_file=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.machine_file, optarg, strlen(optarg)); + o.machine_file[strlen(optarg)] = '\0'; + break; + case 'p': //NUMBER OF THREADS + o.number_of_threads = atoi(optarg); + break; + case 'q': + f.display_only_ips = TRUE; + break; + case 's': //IP RANGE TO SCAN + f.ip_range = TRUE; + o.ip_range=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.ip_range, optarg, strlen(optarg)); + o.ip_range[strlen(optarg)] = '\0'; + break; + case 'u': //maildir mailbox + f.check_mailbox = TRUE; + f.maildir = TRUE; + o.mailbox=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.mailbox, optarg, strlen(optarg)); + o.mailbox[strlen(optarg)] = '\0'; + break; + case 'y': //specify email file + f.email_template = TRUE; + //o.email_template=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.email_template, optarg, strlen(optarg)); + o.email_template[strlen(optarg)] = '\0';; + break; + case 'z': //output to html file + f.output_machine = TRUE; + o.machine_file=s_malloc((strlen(optarg)+1) * sizeof(char)); + strncpy(o.machine_file, optarg, strlen(optarg)); + o.machine_file[strlen(optarg)] = '\0'; + default: + return; + } + } + + return; + +} diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.h b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.h new file mode 100644 index 0000000..05cc42f --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.h @@ -0,0 +1,43 @@ +/*************************************************************************** + parse_args.h - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + +#ifndef SMTPRC_PARSE_ARGS_H +#define SMTPRC_PARSE_ARGS_H + +#include "options.h" +#include "utils.h" +#include +#include +#include + +/********************************defines************************************/ + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +/******************************prototypes***********************************/ + +void parse_args(int argc, char * const *argv); + +#endif + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.o new file mode 100644 index 0000000000000000000000000000000000000000..8ec0fdb435ffca29765c53d8e066ad31227c14f3 GIT binary patch literal 14080 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 T2WqBkznuO5PPL^4Zu|cQ#AUAU literal 0 HcmV?d00001 diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.c b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.c new file mode 100644 index 0000000..8e5dfdc --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.c @@ -0,0 +1,57 @@ +/*************************************************************************** + parse_config_files.c - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include "utils.h" +#include "options.h" + +extern struct options o; +extern struct flags f; + + +/* + * Parse ip address range into individual ip addresses + * + * This is really quite messy and could do with a rewrite + * but it's staying for now. + * + */ + +int get_ip_range(char *iprange) { + + int start[4]; + int end[4]; + int i = 0; + + for(i=0;i<4;i++) { + start[i] = 1; + end[i] = 255; + } + + for(i=0;i<1;i++) { + for(;start[i]<=end[i];start[i]++) { + for(;start[i+1]<=end[i+1];start[i+1]++) { + for(;start[i+2]<=end[i+2];start[i+2]++) { + for(;start[i+3]<=end[i+3];start[i+3]++) { + o.no_hostnames++; + } + } + } + } + } + + return(0); +} \ No newline at end of file diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.h b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.h new file mode 100644 index 0000000..1bf0e9f --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.h @@ -0,0 +1,31 @@ +/*************************************************************************** + parse_config_files.h - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + +#ifndef SMTPRC_PARSE_CONFIG_FILES_H +#define SMTPRC_PARSE_CONFIG_FILES_H + +#include +#include +#include + +/******************************prototypes************************************/ + +int get_ip_range(char *iprange); + +#endif + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.o new file mode 100644 index 0000000000000000000000000000000000000000..0d4c65596180d8f7f40b3a8410c2a6c90fac3467 GIT binary patch literal 6296 zcmb_gU2Ggz6}~g$u{T-&B~DViF3CEH6DQ5C?bLD7{F*v$cMFshC29(amf77|?-1|I zYG<}Ms7*qxltgYN=b<80RRJL&hzC%gQizZVQqzsi`Si&4ixbq1Jb5pmC zx#w3JLeiuBx~k-kI_oaPp-bbe|6_{&RkH;nX^OUExPF?(gc5g)y9 z=iwV?uanMf>S3nuc_5Y^uak$-)C2O>b0EIwLBi5Y#|-eU7ge{eo4&yV6=&~UqoK{8 z_^6P6a2-urWWR<>3+33SkQ)h7t|?bBG$-Qw^(R#@bM2w#ZJpnI=oEq%$c@Ym4pq zkuYNX$_ou*sidZr?#kNCHly!609*jwN%lb)xErhocZY4ZOI7WCI z;njq<6K*FwM7Wdij&97=O?W5a-c^xT5azB9%$p!ZDpmxeA;QCiM+lD)-bZ+p@C4!A zgwuo{B7BVS7~zwI_YnR%;c>zx!g~o<2=6C6OZWic^Mnr)zDW2G;RV8n311<6gzygt zPY}LJ`16E+N%$z?YlNo=FA`37AB6F~ML0wF7U9PUzb&lupk5saWBq+E0*b>=7z6f6 z?769ZV!V18rm-DaW1ttO(Yk!~TnEWpT2W_So@jCXg4imBV=bN-#7NfV>*qu#qApw_ z3j%Zqt8@Q=c_999Jkzre(wbXEJbpNCb%MT2#0O#-I4@epgcaLAV1U^`Yo^ESg}uDS z80_qcTbueftufZNb>AmME4#urYukWv<1#F4ydJ~qjK?KmK)_XyH>UKMb~R;Sha-Il z`(O@I#*sc1WqV(y2lGtyKHG-@+UjVSbU^dw91KBW)e|L6ZhpPrZ0GnhmkWIi{E$r6V8TNo!RX4K|#y{=WckH%j zY%{Xk;VHL-oNvXZS2SvWvAPdUtM6N8pUid5wr{Y8H+Zdmva)TL=YBgd7{vkvkj7nh8-HH53wHc4s`OpQ51$?5S!E)=?A!sK6JE z6YST@Ik%b(iuGwOdoY!_|3t;9hHm5j3sZS9TnftWa4lE!quTIvkeh)F*jGF^S#Zk% z{K-Yh-DAUHIjU6iNq5$P1#^|SJ2jGe=ramZ3#-GPpP#7}++oUwyoXZttr(rDxFLw*vB}B(iJ=oTV1AmCqjLPCXLrMR#&$5x2OFMq-SESE z2Rwy%q%I-{Zxd?kxHrD_6=BSF8~yEVF?^Rk06hM%(UCjV+5Lh!+0kk}VStHLH2I4M zZj1N_-Yi!%3yb*KrydIg7sC10~Ebe5pk?J|A?NNXGFQLmLPz~g-B zZ4iiNeDhUZb|3~Ko28Q}n=hTt7U8jjSUFCBubWlyqYDD`C zAlLX#QzJ$m@0l6+VOuLZiqSZ`I3L*19{KesK)YXdG*k6gBXB#JM|--{vOL-1{mD(6-60&VQff5skmWvdXXGsC~F!vwx4}#&Zwz z{)>5aPV03hSdYWzp-Uzeo+-o4Sft<co;k`_x3QpvRR1U75K z@~HPOe8N)0eSG^ko5@Y_q{^Q`Q$HaUp|7*)O&q`Z-e>WR{n#bSG zFMAw6LVf&?0M{)49=@EY{SRi;blVfa>Kqyla9;KNk#iHT3+e*$!k zP0gR;ehUC&>i!qmU)@8Mz3zV<6wTIegfGtOImh+GB~|{4Z +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +/****************************DEFINES****************************************/ + +#ifndef _REENTRANT +#define _REENTRANT +#endif +#ifndef MSG_NOSIGNAL +#define MSG_NOSIGNAL 0x4000 +#endif + +#define PORT 25 //SMTP Port +#define MAXDATA 8192 //Max data size +#define LARGESTRING 65535 //Large string size +#define CTIMEOUT 10 //Default connect timeout +#define RTIMEOUT 60 //Default read timeout +#define MTIMEOUT 60 //Default wait for email timeout +#define THREAD_DEFAULT 1000 //default number of threads to scan with +#define CONFIG_FILE "/usr/local/etc/smtprc/rcheck.conf" +#define EMAIL_TEMPLATE "/usr/local/etc/smtprc/email.tmpl" + +#define RSET "RSET\r\n" +#define DATA "DATA\r\n" +#define QUIT "QUIT\r\n" + +#define SLASHDOT "./" + +#define PADDING 60 + + + +/****************************DATA STRUCTURES*********************************/ + +typedef struct _check { //This structure will hole all of the check info + + unsigned char failed; + unsigned char passed; + unsigned char error_code; + + char *helo; //helo sent to the sever + char *mail_from; //mail from sent to the server + char *rcpt_to; //rcpt to sent to the server + + char *r_banner; //banner reply + char *r_helo; //helo reply etc etc + char *r_mail_from; + char *r_rcpt_to; + char *r_data_start; + char *r_data_end; + char *r_reset; + +} +check; + +typedef struct _host { //this struct will hold all of the host info. + + unsigned char smtp_open; //this indicates if the server has port 25 open + unsigned char resolved; //this indicates wether the ip address was resolved + unsigned char fatal_error; //this indicates a fatal error + unsigned char fatal; + + char *ip_address; + char *hostname; + + char *r_quit; + + check **smtp_check; + +} +host; + +typedef struct _rule { + + char *helo; + char *mail_from; + char *rcpt_to; + +} +rule; + + + + + + +#endif + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.c b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.c new file mode 100644 index 0000000..f946034 --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.c @@ -0,0 +1,137 @@ +/*************************************************************************** + scan_engine.c - description + ------------------- + begin : Mon May 26 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +/* Some code is omitted for a faster analysis to illustrate the example */ + +#include "scan_engine.h" +#include "options.h" +#include "utils.h" + +extern struct options o; +extern struct flags f; + +pthread_mutex_t main_thread_count_mutex; //mutex for the main thread counter + +void start_scan(void) { + + struct timespec tv; + pthread_t c_tid; + pthread_attr_t attr; + unsigned char flag = 0; + unsigned char res = 0; + int x = 0; + size_t stack_size; + tv.tv_sec = 0; + tv.tv_nsec = 500000000; + + + /* use if we want to start in a detached state but im not going to do this for now + * im going to try and join the threads instead + * + * pthread_attr_init(&attr); + * pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + * + */ + + pthread_mutex_init(&main_thread_count_mutex, NULL); + + debug("\n\nstack size: %d\n", stack_size); + + stack_size = (PTHREAD_STACK_MIN + 0x3000); + + debug("\n\nstack size: %d\n", stack_size); + + o.tid=s_malloc((o.no_hostnames + 1) * sizeof(pthread_t)); + + for(x=0;x=o.number_of_threads) { + pthread_mutex_unlock(&main_thread_count_mutex); + debug("Sleeping cur child == %d, max child == %d\n", o.cur_threads, o.number_of_threads); + nanosleep(&tv, NULL); + } + pthread_mutex_unlock(&main_thread_count_mutex); + while((res = pthread_create(&c_tid, &attr, (void *)thread_start, (int *)o.cur_host)) != 0) { + usleep(200000); + } + //printf("c_tid: %d\n", c_tid); + debug("Created thread\n"); + pthread_mutex_lock(&main_thread_count_mutex); + o.cur_threads++; + pthread_mutex_unlock(&main_thread_count_mutex); + } + flag = 0; + pthread_mutex_lock(&main_thread_count_mutex); + while(o.cur_threads>0) { + pthread_mutex_unlock(&main_thread_count_mutex); + flag++; + if(f.debug||f.verbose>1) { + if(flag>1) { + fprintf(stderr, "O.cur_childs(%d) id greater than zero...... sleepingz\n",o.cur_threads); + flag = 0; + } + } + nanosleep(&tv, NULL); + } + pthread_mutex_unlock(&main_thread_count_mutex); + //pthread_attr_destroy(&attr); + + return; + +} + + +int cleaner_start(void) { + + /* + * This is the cleaner thread it scans the + * thread exit global variable for any threads + * that have exited and then joins them clearing + * up any resources they've used. + * + */ + + int x = 0; + + + while(1) { + for(x=0;x +#include +#include + + +void start_scan(void); +int thread_start(long cur_host); +int cleaner_start(void); + +#endif + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.o new file mode 100644 index 0000000000000000000000000000000000000000..cd720084aa603d01485e74e986941e389d5760ed GIT binary patch literal 16096 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 literal 0 HcmV?d00001 diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc new file mode 100755 index 0000000000000000000000000000000000000000..1666e5a2b8bfd2d81d9b4295bf81de44e7ef3d80 GIT binary patch literal 34616 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 z zR%f-;q-6C)*~nU|{~}wj z#uez*el9*Pm?ZR;oJz>$E>g`bwj%o-* z`vQqztScgROT&xr(+`(mBliFhoYPR>ck_C#Z$IVn0%A&E?W$8k}qb1kf6$O)jDwINV+f3fwy=?D4IlA z?F-=0luT8O7Xo2;9T6tDfn#xz+8v0YcyqQ2z45Efp!ar_!t7ZpbT@{gC^8U3F3`~G-B=|%} z1&3H*7kUdaFc?}S0=v1}KwL(WVQ^-en#{^|SZ@6318U-X&`+?jd!nImAQVgm1x1|b zrAnCAipP5Pq2D8yFh?ldk?sN#Lv+xczB@q8q|L=0DgyDIP{tm3>xTCAZ3V6-Lse*I zyh-gru}3!)9NC$O8=cf?fS=lwDnzQ0CQ%_BsJp|7jyU2=+n{e}k%SsPo~IKpk)x*S zj2h|@&{Pyp(1qiEx)5{d2kFQjzTM`7taACC@OV$UmrnCRsf!m<`Dv!fj^u+g2 z|A-HGGA9Ay1fE#BGsCIR5Q_Gxfl8k&lzZ4v;n6|8slG&KQ>U2Q9q$d#Rgc@x?TUBc z?6DN3ebMloP`Edaua4B5`3vVJSz=CjZxG`|*r0ekziEM(n@%R?Mq`~l=}>qshP=Sy zh58UPSUI;Nno63nq$x8brS|oOlR&APMrYK8@q#jWJjfY~i6uKo6!61*DjBC5&F$*! zd~3<`<{7L00u$%5MR|pq5xSdI7;S3W2=aUs)II)*E(~()~S!2 zLidxPVo)3WF#`bq)kV`|hxpw{ArH-_E#%yf{dT(Q`5POpNJrzR=izO_C(cjMj5?{; zbQa9XTA=CXy(g2^4#2`&OWpc+3$l-{t@v1?N|^VUn24|U;6vpe)SDHCeguGpw~@?y zQHK6G0HfJYzeJ2i|IQe6+SnM4|NI#AOJmT-@+Uq2Vc|ivE##gT zJFr5S^AL@y$;@Aqc`wV*=Yu{0{xrKO=DD+#OgCKF^!736G0^L?Y#HbSppSOmTbzFJ z6xjXL?QR4f0)IhBan@Iu?t9C_ci#ft2R*(5Jx^%hv+#fT)!LsSF z)>HW8$ID~zdr&W`uldnUKQJOnKp(AM)0ysj%Yz$pHQj7WT%}E-cR)zLd6=_N(>INw zzeDRWt6cNaQ7`D^w?hBlt@XERf4a1OdNO-7`;UUZUi0K8bjCqBc1O(nU?z{A=r1Qt z&5D9w1^Idm^wIRwBQvAXUmAlx0=f_WdE{oTSSLy5_hrtbHU6aCQS#@YuJ3ux??8P? zPhnj7*blz9yoyyhhJWUcLBDZ!SHK3FKcWVEecoUmD6RCMkaZI3s9Z{Znfsjn4 zBN2?B*%J%{sop>*CfZouVOARtboInLuqp~+wVezE(|bi{oMtwuaHy$ybPg<2Vo^-Q z5?IfKW2wYG5lPU@HI(k{-3O5zEI`LF=CP{z6D-P|@L&$D*4Q~C{o4=bfxr#7tlrQT zXuD}`0H-gmz3rye8`{^v0BlJF+Wb1#zxEapxN-f)>sPN2Y`o!y&23u(TUKAczAb>^ zpU$V`_3>LytZX$0L*fWXJ!j02=!D4s>R3q3M=%}FW2aLs^9XtC#z2@?7x{B__A-@? zBQEnq%_2li=FORw8J2~3pf|HP%uvbZyiJ_U3Sq2e86Vl1C!d{vQe0rgq*oPcnw`g5 zcrs=nl*CR`Fc!kD5-lF!B24gUF=1wb`n*xKlF!qnRx)`cwQ$HI>4khpGO4YidS#TW zU4x7O8dV)WnxT+?%&H=fNQ;L&f;v+)j}!>tSWpv&bYAGFhk%+@60JZp;;_Wfvn%mT zE=OA4@vQk-e8_3OJS{ErnA8ESc_err2d3tcL{oBKFP76tQwf!J8;EyK`b1Ls`*l!j3mSa*+V? z65*a8323OVCncJ=u1x@&uv8Wd(Biv^cL|!PO9FSCZ=|Mhx9)_xL(pb0r9<^bf+Y-$ zqJq6qC{yAHBGH6yuot}>Xtd}DC+&TLuFz;K5;t(Lql5NKbPiUIVFSa11|%{fGm+Q# z|96l&2w^IPIla1SFn-WwQuFr<6jkvWn9>>e&=_vymuh*FHWO3Ml^I_&Z86eZc^YTw zGU-f(X1>jQ#Sm!yk}Gf4PbRH5j5;lpzZG;G?LpIFzRcfcFzG@~$CFfi71|#J6;EYk z>OZ9IH|Z&@m~13J8+rVw%~urPBx1@pe+R;(=I=fz?zj4%e!-%@sbJ*I-%&6r{U%12 zvET5S6wg8n`Wp=fH-D$Wq^%^3tI&Q$72+rW@~M&U))h3VizCL^anZe*|`=3N+u6(_gGij?X-{{cUnPNUyAiuL* zahlZdk0pP)K)z4Qo3#0D%Kv78{3$)jGwJQ6reu{C+VkB4d9yAvX@NMmRj$S-wY+J6 zv#v1d_5%A&`xzboP#|yC%_i+Jj5;lBzn>P!|6rbCH0iOoDWCQU@XR9LgCuG8FB(@8 zmW?-sWpPuF-yy?`kG}0Q`z6hPq5K<=rPwv{W7x6OE>o^)$1j3LEJoh^ z-IvDeh#POut0ePn%VS(j^hUqNO8DrS!%|IXD)+YBtxbFV`AMPtavZdX!o zWI85=7s{_0Lw;9K@lP@huZ<{_->Bsa{dc%q3ydLe^w541!Ecf0zrusK%iP#XpOMQ= z3s{)(*j@6`$Sn+2@>nzQm-qhkd^lBa&rTiJ&4=U2bz@hgihzg|QLcM;&f{a)RAuI_kQ!g3C@Zkai942z=Lm} zT3Gqp!sl+~S1!D}uoB%~xP0pN<#~XAT>0gjsJd`DO`Q_IuudeE>!@(^XF_}^wEfU= z>xHl(3qjR(t+*9VHl-cN!gID0?%1?RTr-783nPPe-FSHbFUj^)LNGHuD4AVx7n_+T zOJr}F6je`G+Hpf+W=Kl4!78(arbet4^X#t|ou)=dE$mQh6B55Qw`V3GJWAuvfdj}9 ze*e}vfL(-l5$-0un{bBk9>SXl?fbg?~rwBI)KT5bw_#okB!iNZdhVWs+ zmk1vr{1V|A!mkoOO86UuX9<6Y@G-*I2tQ8vI^lW3HwZ7}4?|L3BfLoXCgCRu|4O7j z55s+)FouR+2GkEf(KXtg!#;g~`ZRPOhvaqPGKvAbbdPmM$ly>HB9S@+mpuH0v5hPc zVpFwde3i;3hbHEgCJEcFknk)R^@~*Q;12Up_Oa~Z;B*#rc8P3uCYypNQUfBpBeOUN zbEO4#=`?8@hjwg3b#oXZ+HCC34Q5l@N4IY_w)EtOgy>-p@E~ONkX`S6XqSyAfs!0F zQn_q4CJgYKg(xy=9E0eaOb|y$4v#=~EOB&1dD%-;&N7nJ;^5&C^fs`bj>-Iba&Zu& zogMxZcoq+1HsA;G(p6nl3YDySA3z#(k3(-5#yh!w>~Lw}2Vi^b3}h4V06o$mBpcO1 zf=KTay{lHK5hHD8#xsNe_;E zzuGvmJUvyMnk*FSh2oMOoOi1Y-*devC`Rscj$12+cBLr;7z{$YdZyU+y--#|&o2fc zD56z7P;J^lLk&Bg3j@`qge+)YJCt$Qt06DLjkN8sA=+WXmv*fjipUL|x+`miYQy$L zHS){xP{8*W%2vAxoyh`!Nfh`c$E`M_nk+$Sm!~F+5KXjPth-UE z;)GBlD(Y3h#bd43V0gYQ0}wH@W$D(TKyZ*2Jy8azvQ`Noh~sl}2Mc4TC=vYF6({1n zOuVok?sIY<)3C|Het+)>^10ap4`%%eWmj^byS$C|>khT`!A zhz)tnvf@?gU@UZOfF2v2Q=ms4-)+iX9mkPZwgBNo9yi6)5fvz04{TUztM5L*4O~-cQOBl#`iLR zOXJV*ymvI7Mg9s|tE(5-&jZ}6b*HZvFxsc_e`ZGqH2$MJ?=g-4E6XP|Ue)*08vi=` zml}VC<+B>UmE{W>|8S-)T7Kf?To#(#z7-5Ni{@-dCy#qy%Yk8vK# z8viw(S3UPC&Jycg+P}5h>e{%oCd4I=xk8ApWVR=#G|HZP3SIry$+aLsfkz&*D zw?J&1<7A$N6`XIu*9Y{WANLJ~eA%=uJj4sDW{0-0D)6~u`Ccs0C>%MXdf9Q8JkTL* zS1P_d2Wn`{6n!?K=^6*eMX5|+J_V63lU(&$EeXeF%Y{!N3yyB^DFmNJEW!;$l1lpbKf6RZ}Y*vcwSBa{Bbp!ifbD&t?$)@a7e-#E5PU`(v-Dr~R zp!VtdspP$N&4JF<{;Pf7`^#4FCWD literal 0 HcmV?d00001 diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.c b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.c new file mode 100644 index 0000000..7f14473 --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.c @@ -0,0 +1,62 @@ +/*************************************************************************** + utils.c - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + +#include "utils.h" +#include "relay.h" +#include "options.h" + +extern struct options o; +extern struct flags f; + +extern host **hosts; + + +/* + * Safe malloc routine. checks for errors etc.. + * + */ + +void *s_malloc(unsigned long size) { + + void *mymem; + mymem=malloc(size); + return(mymem); + +} + +/* + * prints debugging information only if the + * debugging flag is set + * + */ + +void debug(char *fmt, ...) { + + if(f.debug) { + va_list ap; + va_start(ap, fmt); + fflush(stdout); + fprintf(stdout, "DEBUG: "); + vfprintf(stderr, fmt, ap); + fprintf(stderr, "\n"); + va_end(ap); + } + + return; + +} diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.h b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.h new file mode 100644 index 0000000..1978f8d --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.h @@ -0,0 +1,57 @@ +/*************************************************************************** + utils.h - description + ------------------- + begin : Wed May 21 2003 + copyright : (C) 2003 by Spencer Hardy + email : diceman@dircon.co.uk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef SMTPRC_UTILS_H +#define SMTPRC_UTILS_H + + +/*****************************includes*************************/ + +#include +#include +#include +#include +#include +#include +#include + + +/****************************defines*****************************/ + +#ifndef MAX +#define MAX(x,y) (((x)>(y))?(x):(y)) +#endif + +#ifndef MIN +#define MIN(x,y) (((x)<(y))?(x):(y)) +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +/***************************prototypes***************************/ + +void *s_malloc(unsigned long size); +void debug(char *fmt, ...); + +#endif + diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.o new file mode 100644 index 0000000000000000000000000000000000000000..0bc2569f2ffe7a4b883f3e6a1c7741d4c602639f GIT binary patch literal 9464 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 DbW_Ys literal 0 HcmV?d00001 diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-extraction.json b/adb_examples/debt-24-demo/smtprc-example/smtprc-extraction.json new file mode 100644 index 0000000..8c45938 --- /dev/null +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-extraction.json @@ -0,0 +1,82 @@ +{ + "files": ["smtprc-2.0.3-extraction"], + "ana": { + "activated": [ + "expRelation", "base", "threadid", "threadflag", "threadreturn", + "escape", "mutexEvents", "mutex", "access", "race", "mallocWrapper", "mhp", + "symb_locks", "var_eq", "mallocFresh", "threadJoins" + ], + "ctx_insens": [ + "var_eq" + ], + "base": { + "privatization": "none", + "context": { + "non-ptr": false, + "int": false, + "interval": false + } + }, + "thread": { + "domain": "plain", + "include-node": false + }, + "malloc": { + "wrappers": [ + "s_malloc", + "s_zmalloc" + ] + }, + "race": { + "free": false + } + }, + "sem": { + "unknown_function": { + "spawn": false, + "invalidate": { + "globals": false, + "args": false + }, + "read": { + "args": false + } + } + }, + "incremental": { + "restart": { + "sided": { + "enabled": true, + "vars": "global" + } + } + }, + "exp": { + "earlyglobs": true + }, + "cil": { + "merge": { + "inlines": false + } + }, + "dbg": { + "timing": { + "enabled": true + } + }, + "warn": { + "assert": false, + "behavior": false, + "integer": false, + "cast": false, + "race": true, + "deadlock": false, + "deadcode": true, + "analyzer": false, + "unsound": true, + "imprecise": false, + "unknown": false, + "race-threshold": 110, + "info": false + } +} From ac759d924d872e34509d2489eef2b87a694e7104 Mon Sep 17 00:00:00 2001 From: Karoliine Holter Date: Fri, 13 Sep 2024 15:48:25 +0300 Subject: [PATCH 3/6] Add custom launch.json for paper example (for using gdb on the example) --- .../paper-example/.vscode/launch.json | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 adb_examples/debt-24-demo/paper-example/.vscode/launch.json diff --git a/adb_examples/debt-24-demo/paper-example/.vscode/launch.json b/adb_examples/debt-24-demo/paper-example/.vscode/launch.json new file mode 100644 index 0000000..03dacaa --- /dev/null +++ b/adb_examples/debt-24-demo/paper-example/.vscode/launch.json @@ -0,0 +1,28 @@ +{ + "configurations": [ + { + "name": "(gdb) Launch", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/a.out", + "args": [], + "stopAtEntry": false, + "cwd": "${fileDirname}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set Disassembly Flavor to Intel", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + } + ] + } + ] +} \ No newline at end of file From 3759d3f5e2315ca3d096047e1d2bb853c1d44592 Mon Sep 17 00:00:00 2001 From: Karoliine Holter Date: Fri, 13 Sep 2024 15:54:29 +0300 Subject: [PATCH 4/6] Update DEBT demo ReadMe --- adb_examples/debt-24-demo/README.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/adb_examples/debt-24-demo/README.md b/adb_examples/debt-24-demo/README.md index 56a4513..1dd870d 100644 --- a/adb_examples/debt-24-demo/README.md +++ b/adb_examples/debt-24-demo/README.md @@ -3,26 +3,23 @@ This folder contains the materials for the demo presentation of Abstract Debugging with GobPie at the [Second Workshop on Future Debugging Techniques (DEBT'24)](https://conf.researchr.org/details/issta-ecoop-2024/debt-2024-papers/4/Abstract-Debugging-with-GobPie). -### :movie_camera: +:movie_camera: There is a pre-recorded [video](https://youtu.be/KtLFdxMAdD8) of using the abstract debugger on the source code of SMTP Relay Checker, showcasing how to debug and fix a data race warning using the abstract debugger. -There is a pre-recorded [video](https://youtu.be/KtLFdxMAdD8) of using the abstract debugger on the source code of SMTP Relay Checker, showcasing how to debug and fix a data race warning using the abstract debugger. - -### :page_facing_up: - -Cite with: +:page_facing_up: Cite with: ``` @inproceedings{10.1145/3678720.3685320, - author = {Karoliine Holter and Juhan Oskar Hennoste and Simmo Saan and Patrick Lam and Vesal Vojdani}, + author = {Holter, Karoliine and Hennoste, Juhan Oskar and Saan, Simmo and Lam, Patrick and Vojdani, Vesal}, title = {Abstract Debugging with GobPie}, year = {2024}, - isbn = {979-8-4007-1110-7/24/09}, + isbn = {9798400711107}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/3678720.3685320}, doi = {10.1145/3678720.3685320}, booktitle = {Proceedings of the 2nd ACM International Workshop on Future Debugging Techniques}, + pages = {32–33}, numpages = {2}, - keywords = {Automated Software Verification, Abstract Interpretation, Explainability, Visualization, Data Race Detection}, + keywords = {Abstract Interpretation, Automated Software Verification, Data Race Detection, Explainability, Visualization}, location = {Vienna, Austria}, series = {DEBT 2024} } From c22203a89a5f8169c5f005990b7c4558ffb4d46d Mon Sep 17 00:00:00 2001 From: Karoliine Holter Date: Thu, 31 Oct 2024 21:41:30 +0200 Subject: [PATCH 5/6] Modify example.c --- adb_examples/debt-24-demo/paper-example/example.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/adb_examples/debt-24-demo/paper-example/example.c b/adb_examples/debt-24-demo/paper-example/example.c index 6e0bd49..065aee5 100644 --- a/adb_examples/debt-24-demo/paper-example/example.c +++ b/adb_examples/debt-24-demo/paper-example/example.c @@ -11,7 +11,6 @@ int f(ThreadAction action) { case CACHE: printf("Store in local cache!\n"); cache = 42; - break; // remove for flawed version case PUBLISH: printf("Publish work!\n"); global = 42; @@ -19,7 +18,7 @@ int f(ThreadAction action) { } void *t(void *arg) { - if (pthread_mutex_lock(&mutex)) { + if (pthread_mutex_trylock(&mutex)) { f(CACHE); } else { f(PUBLISH); From 83b25653aa98517c0534a9a184214852e890002f Mon Sep 17 00:00:00 2001 From: Karoliine Holter Date: Thu, 31 Oct 2024 21:49:24 +0200 Subject: [PATCH 6/6] Fixes to examples --- adb_examples/debt-24-demo/goblint.json | 25 +++++ adb_examples/debt-24-demo/gobpie.json | 6 ++ .../debt-24-demo/smtprc-example/gobpie.json | 2 +- .../compile_commands.json | 100 +++--------------- .../smtprc-2.0.3-extraction/options.o | Bin 2824 -> 2856 bytes .../smtprc-2.0.3-extraction/parse_args.o | Bin 14080 -> 14112 bytes .../parse_config_files.o | Bin 6296 -> 6328 bytes .../smtprc-2.0.3-extraction/scan_engine.c | 13 --- .../smtprc-2.0.3-extraction/scan_engine.o | Bin 16096 -> 16128 bytes .../smtprc-2.0.3-extraction/smtprc | Bin 34616 -> 0 bytes .../smtprc-2.0.3-extraction/smtprc.o | Bin 6320 -> 6352 bytes .../smtprc-2.0.3-extraction/utils.o | Bin 9464 -> 9496 bytes 12 files changed, 47 insertions(+), 99 deletions(-) create mode 100644 adb_examples/debt-24-demo/goblint.json create mode 100644 adb_examples/debt-24-demo/gobpie.json delete mode 100755 adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc diff --git a/adb_examples/debt-24-demo/goblint.json b/adb_examples/debt-24-demo/goblint.json new file mode 100644 index 0000000..d9bcb0f --- /dev/null +++ b/adb_examples/debt-24-demo/goblint.json @@ -0,0 +1,25 @@ +{ + "files": [ + "context-sensitivity.c" + ], + "ana": { + "int": { + "def_exc" : false, + "interval": true + }, + "activated": ["expRelation", "base", "threadid", "threadflag", "threadreturn", + "escape", "mutexEvents", "mutex", "access", "race", "mallocWrapper", "mhp", + "assert", "pthreadMutexType", "apron"] + }, + "sem": { + "lock": { + "fail": true + } + }, + "warn": { + "imprecise": false, + "deadcode": false, + "info": false + }, + "allglobs": true +} diff --git a/adb_examples/debt-24-demo/gobpie.json b/adb_examples/debt-24-demo/gobpie.json new file mode 100644 index 0000000..577abd1 --- /dev/null +++ b/adb_examples/debt-24-demo/gobpie.json @@ -0,0 +1,6 @@ +{ + "goblintConf" : "goblint.json", + "abstractDebugging": true, + "incrementalAnalysis": false, + "showCfg": true +} diff --git a/adb_examples/debt-24-demo/smtprc-example/gobpie.json b/adb_examples/debt-24-demo/smtprc-example/gobpie.json index 5901fcb..5c58477 100644 --- a/adb_examples/debt-24-demo/smtprc-example/gobpie.json +++ b/adb_examples/debt-24-demo/smtprc-example/gobpie.json @@ -1,5 +1,5 @@ { - "goblintConf" : "smtprc.json", + "goblintConf" : "smtprc-extraction.json", "abstractDebugging": true, "incrementalAnalysis": false, "showCfg": true diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json index ad816ce..175d609 100644 --- a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json +++ b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/compile_commands.json @@ -1,18 +1,4 @@ [ - { - "arguments": [ - "/usr/bin/gcc", - "-Wall", - "-g", - "-c", - "-o", - "smtprc.o", - "smtprc.c" - ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/smtprc.c", - "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/smtprc.o" - }, { "arguments": [ "/usr/bin/gcc", @@ -23,65 +9,9 @@ "scan_engine.o", "scan_engine.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/scan_engine.c", - "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/scan_engine.o" - }, - { - "arguments": [ - "/usr/bin/gcc", - "-Wall", - "-g", - "-c", - "-o", - "options.o", - "options.c" - ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/options.c", - "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/options.o" - }, - { - "arguments": [ - "/usr/bin/gcc", - "-Wall", - "-g", - "-c", - "-o", - "utils.o", - "utils.c" - ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/utils.c", - "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/utils.o" - }, - { - "arguments": [ - "/usr/bin/gcc", - "-Wall", - "-g", - "-c", - "-o", - "parse_config_files.o", - "parse_config_files.c" - ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_config_files.c", - "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_config_files.o" - }, - { - "arguments": [ - "/usr/bin/gcc", - "-Wall", - "-g", - "-c", - "-o", - "parse_args.o", - "parse_args.c" - ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_args.c", - "output": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_args.o" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.c", + "output": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.o" }, { "arguments": [ @@ -92,8 +22,8 @@ "-pthread", "smtprc.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/smtprc.c" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/smtprc.c" }, { "arguments": [ @@ -104,8 +34,8 @@ "-pthread", "scan_engine.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/scan_engine.c" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.c" }, { "arguments": [ @@ -116,8 +46,8 @@ "-pthread", "options.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/options.c" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.c" }, { "arguments": [ @@ -128,8 +58,8 @@ "-pthread", "utils.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/utils.c" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.c" }, { "arguments": [ @@ -140,8 +70,8 @@ "-pthread", "parse_config_files.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_config_files.c" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.c" }, { "arguments": [ @@ -152,7 +82,7 @@ "-pthread", "parse_args.c" ], - "directory": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3", - "file": "/home/ubuntu/goblint/gobpie-demo-debt-24/smtprc-example/smtprc-2.0.3/parse_args.c" + "directory": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction", + "file": "/home/ubuntu/GobPie/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.c" } ] diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/options.o index 0fdc0eb8b7d5a0d23d9e07688cff3710c81040bc..21a1e3a59e0b06869c5c3245f86e29452da8c338 100644 GIT binary patch delta 208 zcmeAWTOl?HrUsLOdwxY4kMPhD2PHM4!N@`Mxu91muN@{NY)*&`QgVAH7rUsLAdVW$)W?qRtkS@qf)lEsw%?A=mCAvl?lM9(-G#T_W@^e%5 zOOs0TN=iYh@TuPXmT55)qyOZItm2GQHm_tAXJUH5Joym&K1PqpjU4ri36mK)+ZpFg y4rCUdJcm<-@y6tXoc4??lNq_}89639a@kLI;NqCv!DYdCVe&zs*o4W9-0A@PfjATZ diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_args.o index 8ec0fdb435ffca29765c53d8e066ad31227c14f3..3ce0e737c3727816b7571b37e63bb7454fbd8012 100644 GIT binary patch delta 447 zcmZq3TaY(FgHd6l=0CxD_xz-Q%vAlvl%)97ip1Q4oYZ3dl+>gWT_Y3Sl+@gO{o>q` zf}&(ys3eSQq-UUK3=}LWN=z=v%+F)c&&bbB)h|sd%_}L@C*Dw5u$8z>-Mm;xSB5cZ z@!DOlE(WPH%z{1T+jGma->N+W69))CgzNdlO;{idrKrFv8`Jtga03vO3^Z)<= delta 359 zcmZ3G*N`_sWAc0>){VNq1f|pSlX5ciO7wwrL1wCMN@{LCkVq=gH8PnzM@UAKK|dou zH&wqhsWh*o6r>8D>dl9RbY&QWCV$iuXPiD+P+gdngMoqJz+^>zammL(76@2CC3s7R34sm2ra7Fcn;r8-eWecvPhJRh zi_d03gXN4&FGMHrGW^FVFnOm@J!8XUOXK~F6DI#Ou4g^U_IAeP^l%xEMJ E0B3Ypq5uE@ diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/parse_config_files.o index 0d4c65596180d8f7f40b3a8410c2a6c90fac3467..ffe89524375e95e13ce0f22c98f63374da1620fb 100644 GIT binary patch delta 297 zcmbPXxWjOQ2BXDBO)X9Z_xz-Q%vAlvl%)97ip1Q4oYZ3dl+>gWT_Y3Sl+@h($$6YI zmb$4GB}IwJC7Jno4Eh=QxvBc4Nu_xurTWC^=0?)J`8?-IcF8OT2vCF4TtJ!~i1$z4 zC@3!Z2r6odCi{KzLqTyyp2>{7!n`2WVvG<4o|6j&#Wx!WH83(NOx`H`pD|ls%}{wUhcs5-e)%$zZ7@6z3=j4fk;+q468Wlr&H3yQTfvQC~UX3l6f`J$LT vW71?naeKy$$${eblLN##CeIMJU^JL~5h!+GvY>=L0) { - pthread_mutex_unlock(&main_thread_count_mutex); - flag++; - if(f.debug||f.verbose>1) { - if(flag>1) { - fprintf(stderr, "O.cur_childs(%d) id greater than zero...... sleepingz\n",o.cur_threads); - flag = 0; - } - } - nanosleep(&tv, NULL); - } - pthread_mutex_unlock(&main_thread_count_mutex); - //pthread_attr_destroy(&attr); return; diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/scan_engine.o index cd720084aa603d01485e74e986941e389d5760ed..5728e048663440305e1a1fc4f4550fcc19c4b631 100644 GIT binary patch delta 734 zcmaD*+fX+_gVAB5CNGbegm?!F1A}lHgQTbr8v}zh0}wDuZ}#EwWMpigJdIaTuwA?e zD8@7~gFyi-nKAhUuUvf*TQ*oUhd~i6Dht#M0k4=KG~*oJk}?K)p=&@s^TY-9d>~;3 zo}J7f?gR)|QBVVDJM+X15U!GdKTr+x#IAbYqSRsrWhl41p0|QQ1#BVn#2&CxCI;2b z>3lbs7-cp)2=+5F3U0n2^o32qJwGWRGgUt^B`H3&A~ClhC$(5VB{iu;*T_USB{esH z@_k7eOWo9plA^@qlFa-(2K|iu+*JM2q|&^SQhj1{b0g{A>>zbOnlX7YqnWtm4v422 zw4gK>kmdm5hm#F~vMh`cVIwqI-N}hSSu3clBbuzoj zZ0Y2WK-n6oY&@E5-(*E|amgi6*-SLq&65LxvWK9u#b~l;CN~0QuRvvM(PZyU-UyU^ z4wY?3lYO`Oq4{-2#v7Y=TG}%*W=#HRwV(09_Oaf+;t!&yDzfC@9W6n5#@=qIk zrqj}s9c9EO2iR&bUYJ~IYtQ&$@=hSBF!?8t%$RIx2NJ2Yv**mPfLL>RGNY9|0CV7# AAOHXW delta 701 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 z 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 TlQSjkIVFT37G0iPC@c>EUqeip diff --git a/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.o b/adb_examples/debt-24-demo/smtprc-example/smtprc-2.0.3-extraction/utils.o index 0bc2569f2ffe7a4b883f3e6a1c7741d4c602639f..c16b4598df5e212fc5a352ca0c51c1df2e255436 100644 GIT binary patch delta 451 zcmez2Im2s$24loV%|pBj?)gapnW_4TDM|6E6^Xe8IjP0^DXB>%x<)3tDXF>nlfC(5 zEOk>WN{SMbOEUBG81yspb5r$8lS=bSO7)4+&5fjcb2^_RpJXfp1gJr2E+EYT#G57` zlo6M_4HeZxll?dOBT!bI5h84ZCTlWTQC3{i1}f`@ChIae5Gd;ll?_0X4V&Bulud-n zMxn`OPTmNVEr-gcpvl%veh8FpgUaTi$xhfTD7T-HF<|pWd3#32g2{r4`x!eXUsSAT z+%Y*&shx4=>G?@HnRzApK)N6^RW~IyHy=nOmFOCoOitjF(PYri$j?pH zFHI`VD=7u3!l!z3JD($;q%Q*ms6lBiAk6{9lO{iu5trNz71cwNy*F7WqZcz w$%R0&Ve&?0`^g)WIVS&5wqP`vY^Y+-^n-tLk%}GTjmaBT>=_d#e^gNi0JQy4ApigX