mirror of
https://github.com/meshtastic/firmware.git
synced 2025-02-01 02:09:57 +00:00
b0fe5ef8ba
* Initial commit of a fuzzer for Meshtastic. * Use a max of 5 for the phone queues * Only write files to the temp dir * Limitless queue + fuzzer = lots of ram :) * Use $PIO_ENV for path to program * spelling: s/is/to/ * Use loopCanSleep instead of a lock in Router * realHardware allows full use of a CPU core * Ignore checkov CKV_DOCKER_2 & CKV_DOCKER_3 * Add Atak seed * Fix lint issues in build.sh * Use exception to exit from portduino_main * Separate build & source files into $WORK & $SRC * Use an ephemeral port for the API server * Include CXXFLAGS in the link step * Read all shared libraries * Use a separate work directory for each sanitizer --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""PlatformIO build script (post: runs after other Meshtastic scripts)."""
|
|
|
|
import os
|
|
import shlex
|
|
|
|
from SCons.Script import DefaultEnvironment
|
|
|
|
env = DefaultEnvironment()
|
|
|
|
# Remove any static libraries from the LIBS environment. Static libraries are
|
|
# handled in platformio-clusterfuzzlite-pre.py.
|
|
static_libs = set(lib[2:] for lib in shlex.split(os.getenv("STATIC_LIBS")))
|
|
env.Replace(
|
|
LIBS=[
|
|
lib for lib in env["LIBS"] if not (isinstance(lib, str) and lib in static_libs)
|
|
],
|
|
)
|
|
|
|
# FrameworkArduino/portduino/main.cpp contains the "main" function the binary.
|
|
# The fuzzing framework also provides a "main" function and needs to be run
|
|
# before Meshtastic is started. We rename the "main" function for Meshtastic to
|
|
# "portduino_main" here so that it can be called inside the fuzzer.
|
|
env.AddPostAction(
|
|
"$BUILD_DIR/FrameworkArduino/portduino/main.cpp.o",
|
|
env.VerboseAction(
|
|
" ".join(
|
|
[
|
|
"$OBJCOPY",
|
|
"--redefine-sym=main=portduino_main",
|
|
"$BUILD_DIR/FrameworkArduino/portduino/main.cpp.o",
|
|
]
|
|
),
|
|
"Renaming main symbol to portduino_main",
|
|
),
|
|
)
|