26 Commits
Author SHA1 Message Date
Thomas Vincent 898d8c692c fix(privileges): drop root before input and retain owned ICMP sockets (#639)
Open and own the required ICMP sockets before permanently dropping
setuid root, then parse input without elevated identity. Close-on-exec
socket ownership, shared IPv4/IPv6 dispatch and fault-injected
identity/capability calls are covered. The owned fixture tests check
deny/allow behavior without contacting external devices.

Step 2/14 of the complete C17/native-correctness series. Base: the
preceding series branch; merge/review in order so this PR shows only its
own step.

Earlier validation, before this review follow-up, in isolated copied
snapshots on Linux arm64:

- Clean GCC build and make check: 13 passed, 1 existing prerequisite
skips, 0 failures.
- ASan/UBSan: 12 passed, 2 existing privilege/allocator-interposition
prerequisite skips, 0 failures; no sanitizer findings.
- Production source/profile integrity verification against disposable
MariaDB and loopback SNMP fixtures passed.
- Release archive extracted into a separate source tree and built/tested
out of tree; fuzz checks passed.

Earlier local profiles retain source hashes for the copied validation
tree; GitHub checks validate the published commit. No production
database/device, host installation or live privilege change is part of
validation. Existing prerequisite skips were retained; no test or
finding was suppressed to obtain a pass.


Series navigation: [Series
index](https://github.com/Cacti/spine/pull/638); [previous
step](https://github.com/Cacti/spine/pull/638). [Next
step](https://github.com/Cacti/spine/pull/640).

Review follow-up (2026-10-09): Restacked on the corrected preceding
branches. The SNMP status fix is introduced in #638, the
reindex/completion fixes in #640, and focused regression coverage in
#650.

Restacked tip validation: isolated Linux arm64 build and make check
passed (18 passed, 1 setuid prerequisite skip, no failures).
GitHub checks validate the updated published commits; earlier
profile/archive/sanitizer evidence above belongs to the previous
revisions.

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-10-10 21:08:52 -04:00
86a062dd09 ci: enforce cross-platform quality gates and connector coverage (#618)
## Summary

Consolidates the connector/build work from #613 and the broader
test-infrastructure work extracted from #597 into one review:

- discover MariaDB Connector/C first while retaining MySQL and
Percona-compatible support
- test MariaDB and MySQL Connector/C with strict GCC and Clang builds on
Ubuntu 24.04
- add a real macOS 15 build and unit-test lane with portable Autotools
platform detection
- run unit tests under ASan/UBSan and ThreadSanitizer
- enforce the measured 7% global coverage baseline and 70% changed-line
coverage
- add libFuzzer coverage for output parsing alongside the existing
hostname parser
- exercise the SNMPv3 integration suite against MariaDB and MySQL 8.4
- add cppcheck, shellcheck, DCO verification, CODEOWNERS, distcheck, and
Linux-capability checks while retaining the repository-managed default
CodeQL setup
- expose a stable `CI / required` aggregate check for branch protection
- pin runners and third-party actions and keep workflow permissions
read-only by default

## Correctness fixes found by the new gates

- reject truncated capability strings and poller-output SQL tuples
instead of publishing partial data
- make `bootstrap` fail closed and select `libtoolize`/`glibtoolize`
portably
- use Autoconf's canonical host for Darwin detection instead of an empty
native-build alias
- remove stale initialization/name-shadow findings and make read-only
interfaces const-correct
- make the ICMP parser test portable across Linux and BSD header names

## Verification

- strict GCC and Clang builds: 4/4 unit targets passed
- ASan/UBSan: 4/4 passed
- ThreadSanitizer: 4/4 passed
- macOS Clang/Homebrew build: 4/4 passed
- MariaDB integration: passed
- MySQL 8.4 integration: passed
- both libFuzzer targets: passed sustained local runs
- coverage: 7.2% global and 84% on changed lines
- cppcheck, shellcheck, actionlint, DCO verification, and `git diff
--check`: passed locally

## Post-merge repository settings

After these workflows exist on `develop`, an administrator should
require `CI / required`, Fuzz, Integration, Rocky Linux, and the
repository-managed CodeQL/code-scanning result in the active ruleset;
enable code-owner approval; and require the branch to be current (or use
a merge queue). Enabling those settings before this PR merges would
create required checks that the base branch cannot yet emit.

Consolidates and supersedes #613. Closes #612.

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: TheWitness <thewitness@cacti.net>
Signed-off-by: TheWitness <copilot@users.noreply.github.com>
Co-authored-by: TheWitness <thewitness@cacti.net>
Co-authored-by: TheWitness <copilot@users.noreply.github.com>
2026-09-24 05:52:56 -04:00
Thomas Vincent 2cdb188f43 chore: update copyright year to 2026 (#434)
Fixes #441

Updates copyright headers from 2004-2023/2024 to 2004-2026 across 12
source files.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-03-11 20:28:37 +00:00
Eduardo Mozart de OliveiraandTheWitness 7de23c056b Update INSTALL (#340)
Updated some Cygwin dependencies that were deprecated.

---------

Co-authored-by: TheWitness <thewitness@cacti.net>
2024-03-15 15:07:24 -04:00
Mark Brugnoli-Vinten b3303d3e16 Update copyright year for 2023 2023-01-04 10:21:05 +00:00
BSOD2600 fce9fc1847 Update INSTALL
add missing depends for libbacktrace cygwin compiling instructions
2021-01-03 07:43:23 -08:00
netniV 07b4e654ef INSTALL instructions have typo in bootstrap command
Closes #112
2019-08-22 15:01:23 +00:00
netniV 43142d8af8 Correct unix installation instructions to be more clear 2019-04-28 19:47:01 +00:00
netniV b1d94a7b6d Replace INSTALL with spine specific instructions 2018-11-13 12:36:49 +00:00
cigamit 7212fa2212 Syncing 0.8.8g with 1.0
resolving bugs:
2510, 2639, 2640, 2549, 2638, 2654
2016-01-17 17:18:50 -06:00
Larry Adams 0973eb42bd Should be integer type
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@6802 860744bd-22fc-0310-8c96-e9fe5004b5ca
2011-09-25 12:48:59 +00:00
Larry Adams 0b7cac9390 -bug#0002059: Spine doing too many (80+) connections when polling
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@6777 860744bd-22fc-0310-8c96-e9fe5004b5ca
2011-09-13 12:47:35 +00:00
Jeff Pasnak 4f62556648 - replace commands with autoreconf
- remove unix2dos
- call bootstrap from package
- remove duplicate code

git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@6023 860744bd-22fc-0310-8c96-e9fe5004b5ca
2010-06-28 17:50:01 +00:00
Jeff Pasnak c280fd830a Clean up directory, update bootstrap
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@6021 860744bd-22fc-0310-8c96-e9fe5004b5ca
2010-06-28 14:21:11 +00:00
Jeff Pasnak bb1f36dd44 Add alternate install instructions
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@6019 860744bd-22fc-0310-8c96-e9fe5004b5ca
2010-06-28 03:55:26 +00:00
Tony Roman 4faa5d8dee Make it work the way is should work
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@5140 860744bd-22fc-0310-8c96-e9fe5004b5ca
2009-06-29 01:42:35 +00:00
Larry Adams dfcc8e39fc -bug: Reverting to traditional popen due to timeout issues with scripts.
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@4997 860744bd-22fc-0310-8c96-e9fe5004b5ca
2009-04-24 13:49:45 +00:00
Larry Adams bab0de39b3 More changes. Add additional commentary to the install instructions
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@4753 860744bd-22fc-0310-8c96-e9fe5004b5ca
2008-10-09 01:22:53 +00:00
Larry Adams e58bdbdb67 -bug#0001152: Running spine w/o setuid-root on Solaris
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@4722 860744bd-22fc-0310-8c96-e9fe5004b5ca
2008-09-18 00:25:27 +00:00
Larry Adams 8ada766df3 -QA: update installation instructions
-Note: preparing for beta1

git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@4708 860744bd-22fc-0310-8c96-e9fe5004b5ca
2008-09-13 17:01:30 +00:00
Reinhard Scheck 4c5d6c6687 -bug#0001186: clarify INSTALL documentation.
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@4594 860744bd-22fc-0310-8c96-e9fe5004b5ca
2008-05-31 11:46:15 +00:00
Larry Adams 12629ada5a -bug#0001054: Cactid/Spine installation instructions are missing dependencies
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/0.8.7@4301 860744bd-22fc-0310-8c96-e9fe5004b5ca
2007-11-04 00:23:50 +00:00
Larry Adams b099e3d543 Initial rename, Add tabs stops and autoindent, fix copyright
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/spine/branches/main@4142 860744bd-22fc-0310-8c96-e9fe5004b5ca
2007-09-10 12:28:22 +00:00
Larry Adams 2de811c2e1 commit rc11 for testing
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/branches/BRANCH_0_8_6/cactid@3201 860744bd-22fc-0310-8c96-e9fe5004b5ca
2005-09-22 01:31:08 +00:00
Ian Berry 44ac036f5d created some basis docs for cactid
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/trunk/cactid_unix@1005 860744bd-22fc-0310-8c96-e9fe5004b5ca
2003-05-30 03:55:50 +00:00
Ian Berry a3b7224def new cactid poller
git-svn-id: svn+ssh://repo.cacti.net/var/data/svnroot/cacti/trunk/cactid_unix@961 860744bd-22fc-0310-8c96-e9fe5004b5ca
2003-05-26 03:17:51 +00:00