- Add --hardened flag to build.sh with FORTIFY, stack protector, PIE, RELRO - Add --enable-hardening to configure.ac - F-001: fix %s -> %.32s to prevent stack leak from non-null-terminated network string - F-002: add pre-check recv_len >= MAX before buf_space computation to prevent size_t underflow
33 lines
701 B
Bash
Executable File
33 lines
701 B
Bash
Executable File
#!/bin/bash
|
|
set -eo pipefail
|
|
|
|
# --- dependencies ---
|
|
PKGS="cmake librlottie-dev zlib1g-dev qtbase5-dev libssl-dev"
|
|
MISSING=""
|
|
for p in $PKGS; do
|
|
dpkg -s "$p" &>/dev/null || MISSING="$MISSING $p"
|
|
done
|
|
|
|
if [ -n "$MISSING" ]; then
|
|
echo "Installing missing packages:$MISSING"
|
|
sudo apt update && sudo apt install -y $MISSING
|
|
else
|
|
echo "All dependencies OK"
|
|
fi
|
|
|
|
# --- build ---
|
|
SRCDIR="$(cd "$(dirname "$0")" && pwd)"
|
|
BUILDDIR="$SRCDIR/build"
|
|
JOBS="${JOBS:-$(nproc)}"
|
|
|
|
echo "Source: $SRCDIR"
|
|
echo "Build: $BUILDDIR"
|
|
echo "Jobs: $JOBS"
|
|
echo ""
|
|
|
|
[ -f "$BUILDDIR/Makefile" ] || cmake -S "$SRCDIR" -B "$BUILDDIR"
|
|
cmake --build "$BUILDDIR" -j"$JOBS"
|
|
|
|
echo ""
|
|
echo "OK. Run: $BUILDDIR/chatgui"
|